2016-04-08 12 views
0

UTF-8 sind Methoden, um Unicode-Strings in Byte-Sequenzen zu codieren. Base64 ist eine Methode, eine Byte-Sequenz in einen StringVorteil der Konvertierung in Base 64-Codierung?

Hier wird das Beispiel zu codieren, wie wir die Zeichenfolge in Bytes zuerst und dann base64 String

String base64encodedString = Base64.getEncoder().encodeToString("TestString".getBytes("utf-8")); 

Jetzt i senden und der Basis 64 Daten über das Netzwerk zu konvertieren. Meine Frage ist, wie Daten immer als Byte-Sequenz gereist werden, was hat dann den Vorteil, Bytesequenz in String umzuwandeln? Ich weiß, ich verpasse hier einen Punkt, aber ich weiß nicht, was das ist?

+0

base64 konvertiert immer in ASCII, was man sich als Bytes vorstellen kann. –

Antwort

6

Sie konvertieren im Allgemeinen zu base64, wenn Sie binäre Daten (die einen beliebigen Bytewert von 0 bis 255 haben können) über ein Textprotokoll übergeben. z.B. in JSON, XML, E-Mail.

+0

Danke Peter. Aber das ist, was meine Frage ist, da Daten immer als Byte-Sequenz gereist werden, was ist dann der Vorteil der Rück-Byte-Sequenz in String durch Base 64 zu konvertieren? – emilly

+0

@emilly manchmal Protokolle sind auf Bytes, die davon ausgehen, dass die Daten im Text nicht binär sind. z.B. sie verwenden 'PrintWriter' und' BufferedReader', die Text erwarten, was bedeutet, dass '\ r' und' \ n' spezielle Bedeutungen erhalten und wenn Sie dies in Ihrer Binärdatei haben, wird dies ein Problem verursachen, wenn die Daten nicht kodiert sind. –

+0

Aber ich sehe keine Leute mit Base 64 beim Hochladen von Anhang/Bilder über http? Zweite Frage selbst nach der Umwandlung in die base64-Zeichenfolge werden Daten in Bits übertragen, aber in Paketen von jeweils 6 Bits. Recht ? – emilly