I
iTree
Gast
Hallo alle miteinander,
ich möchte einen String in eine Folge von Bytes umwandeln. Soweit, so gut, das mache ich mit
Das klappt auch ohne Probleme. Allerdings scheitere ich beim Umwandeln des Byte-Arrays zurück in einen String.
Eigentlich klappt auch alles. Nur leider ist der String... etwas merkwürdig.
Obwohl er eine Länge von 11 haben müsste, besitzt er eine Länge von 22.
Jedes Zeichen des Strings ist durch ein NUL-Zeichen unterbrochen. Scheinbar werden jeweils 2 Bytes nicht zusammen gefügt, um ein char zu erstellen. Wie kann ich das also anders lösen?
Oder muss ich mir selbst eine Funktion schreiben, die mir ein vernüftiges char-Array erstellt, um daraus dann einen String zu erstellen?
MfG
ich möchte einen String in eine Folge von Bytes umwandeln. Soweit, so gut, das mache ich mit
Code:
ByteArrayOutputStream b = new ByteArrayOutputStream(0);
DataOutputStream d = new DataOutputStream(b);
d.writeChars("Hallo Welt.");
byte[] c = b.toByteArray();
Das klappt auch ohne Probleme. Allerdings scheitere ich beim Umwandeln des Byte-Arrays zurück in einen String.
Code:
byte[] chars = new byte[len << 1]; // len ist die Länge des Strings in Zeichen
dis.read(chars, 0, len << 1); // dis ist ein DataInputStream, der aus dem Byte-Array (c) erstellt wurde.
String s = new String(chars);
Eigentlich klappt auch alles. Nur leider ist der String... etwas merkwürdig.
Obwohl er eine Länge von 11 haben müsste, besitzt er eine Länge von 22.
Jedes Zeichen des Strings ist durch ein NUL-Zeichen unterbrochen. Scheinbar werden jeweils 2 Bytes nicht zusammen gefügt, um ein char zu erstellen. Wie kann ich das also anders lösen?
Oder muss ich mir selbst eine Funktion schreiben, die mir ein vernüftiges char-Array erstellt, um daraus dann einen String zu erstellen?
MfG