Entwickler-Ecke

Basistechnologien - byte[] // extra für den Robert ;)


ani - Do 27.10.05 15:54
Titel: byte[] // extra für den Robert ;)
So jungs und mädels,

ich hab hier ein byte[] und will diese geschichte umwandeln in einen string.
Habs schon über Object und parse und (string)byte[] probiert, geht aber alles nicht.

Ausgangspunkt ist dieser --> Word-Datei ;)
ich will alle zeichen einlesen (inklusive ß,ü,ö,ä) und das macht mir nur der FileStream-Hans, der wiederum speichert das ganze Zeichengedöhns in einem byte[] ab und den
byte[]-Hans will ich in einen string konvertieren und abspeichern, sodass ich in meiner speicherDatei meine ß,ü,ö,ä habe

......bekomms aber nich hin :)


Christian S. - Do 27.10.05 16:02

Hallo!

Habe das bei einem Stream mal so gemacht:

C#-Quelltext
1:
2:
UTF8Encoding asen=new UTF8Encoding();
char[] ch = asen.GetChars(b); //aus den Bytes wieder Buchstaben machen


Statt GetChars gibt's auch GetString.

Grüße
Christian

//edit: Gibt auch noch andere Encoding-Dinger ;-)


Robert_G - Do 27.10.05 16:06

Wie die Überschrift schon zeigt ( :lol: ) bin ich nicht groß mit Arrayfrickeleien...
Ich würd's so umständlich versuchen: :oops:

C#-Quelltext
1:
2:
3:
4:
5:
6:
byte[] bytes = new byte[3] {656667};

char[] chars = new char[bytes.Lenth];
Array.CopyTo(bytes, chars, bytes.Length);

string endlich = new StringBuilder(bytes.Length).Append(chars).ToString();


Und schon zeigt Christian, wie wenig Peilung ich doch davon habe. :) :nut:


ani - Do 27.10.05 16:08

und wo ist da mein byte[]? :)

etwa da --> new UTF8Encoding( hier );


Christian S. - Do 27.10.05 16:12

Mein "b" ist Dein byte[] ;-)


ani - Do 27.10.05 16:16

using System.??? :D

für das UTFEncoding


Christian S. - Do 27.10.05 16:21

Ein Blick in die Doku (:roll:) ergibt: System.Text


ani - Fr 28.10.05 08:43

:x

hatte vergessen, dass es so was gibt :)

vielen dank !


ani - Fr 28.10.05 10:01

Also in meinem char[] steht alles schön und wunderbar drinne so wie ichs auch gern hätte.

Nur! ;) wenn ich aus meinem Array einen String mache nimmt der mir nur die ersten ca.10 Zeichen. Der Grund könnte vielleicht sein, dass hinter den 10 Zeichen erst mal nix drin steht, also ASCII 0 , sodass er nur bis zum ersten NUL in einen String umwandelt
--> stimmt das?


C#-Quelltext
1:
2:
3:
4:
5:
char[] chars = new char[byte.Length];  
Array.Copy(byte,0,chars,0,byte.Length);

String endlich = new String(chars);
label1.Text = endlich;



ps: das mit dem UTF8Encoding ging nicht


Christian S. - Fr 28.10.05 10:03

user profile iconani hat folgendes geschrieben:
ps: das mit dem UTF8Encoding ging nicht
Bei mir läuft es in einem Programm. Was heisst denn "ging nicht"? Falsches Ergebnis? Gar kein Ergebnis? Wenn Du genauer wirst und evtl. ein wenig Source zeigt, kann man Dir helfen ;-)


ani - Fr 28.10.05 10:13


C#-Quelltext
1:
2:
3:
UTF8Encoding asen = new UTF8Encoding();  
string ausgabe = asen.GetString(*popo*);
label1.Text = ausgabe;


-->  steht bei mir in meinem String obwohl die Zeichen nicht so vorkommen