Umwandlung Byte Array in String
-
Hi,
ich wandele mit dieser Funktion
public static string ByteArrayToString(byte[] arr)
{
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
return enc.GetString(arr);
}ein Bytearray in einen String um.
Das Byte Array besitzt nur am Anfang 10 Ascii Zeichen und ist dann bis zum Ende mit 0 gefüllt. Insgesamt ist das Array 4096 Byte lang.
Nach der Umwandlung habe ich einen String mit den gewünschten Ascii Zeichen + 4000 x \0 im String.
Warum erkennt der Encoder das Stringende nicht (hex Null)?
Grüße Opal
-
Weil in .NET die Strings nicht 0 terminiert sind.
-
ok, und wie dann den Trail loswerden...?
Grüße Opal
-
z.B. mit Trim
-
ok, thx
Opal
-
Hallo,
anstatt erst das gesamte Byte-Array in einen String umzuwandeln, und danach dann zu trimmen, berechne besser vorher die tatsächliche Länge des Byte-Arrays und übergib dieser der Methode:
Encoding.Default.GetString(arr, 0, length);
(P.S. Default anstatt ASCII, da du sonst bei Werten > 127 nur '?' erhältst
-
Ja so ist es noch besser, Danke, Opal