2016-05-09 3 views
0

in Java,Java - Wiederherstellen von Bytes aus String

// already set 
byte[] bytes = ...; 

Byte-Array kann wie

String s = bytes.toString(); 

Die Frage zu bespannen gegossen werden wird: Wie kann ich die gleiche "Bytes" von "recover s "?

die Wahrheit ist, dass der folgende Code falsch ist.

byte[] byteFromString = x.getBytes(); 
+0

Die Antwort auf Ihre Frage könnte von der _encoding_, die die Zeichenfolge hat abhängen. Zum Beispiel könnte in UTF-8 ein Zeichen aus 4 Bytes bestehen, es könnte aber auch nur aus einem Byte bestehen. –

+1

http://StackOverflow.com/Questions/19834854/How-to-cast-string-to-byte-array – ryekayo

+0

Streng genommen "String s = bytes.toString();" ist kein Cast-Vorgang – Lee

Antwort

0

Wenn Sie verwendet nur bytes.toString(), dann nein, es buchstäblich unmöglich ist. Dadurch erhalten Sie eine Zeichenfolge, die den Hash-Code byte[] darstellt, der im Wesentlichen zufällig ist und keine Beziehung zum tatsächlichen Inhalt der byte[] hat.

Wenn die byte[] tatsächlich eine Codierung einer Zeichenkette dargestellt, wie UTF-8, dann können Sie new String(bytes, StandardCharsets.UTF_8) tun, es zu konvertieren zu einem String und string.getBytes(StandardCharsets.UTF_8) es zu konvertieren zurück.

+0

Get! Danke vielmals. –