Konvertierung von Strings in und aus UTF8 Byte-Arrays in Java
In Java habe ich einen String und möchte ihn als Byte-Array kodieren (in UTF8 oder einer anderen Kodierung). Alternativ habe ich ein Byte-Array (in einer bekannten Kodierung) und möchte es in einen Java-String konvertieren. Wie führe ich diese Konvertierungen durch?
224
3
Umwandlung von String in byte[]:
Konvertieren von byte[] in String:
Sie sollten natürlich den richtigen Kodierungsnamen verwenden. In meinen Beispielen wurden US-ASCII und UTF-8 verwendet, die beiden gängigsten Kodierungen.
Sie können direkt über den String(byte[], String) Konstruktor und die Methode getBytes(String) konvertieren. Java stellt die verfügbaren Zeichensätze über die Klasse Charset zur Verfügung. Die JDK-Dokumentation listet unterstützte Kodierungen auf.
In 90 % der Fälle werden solche Konvertierungen mit Streams durchgeführt, so dass Sie die Klassen Reader/Writer verwenden würden. Sie würden nicht inkrementell dekodieren, indem Sie die String-Methoden für beliebige Byte-Streams verwenden - Sie würden sich selbst Bugs aussetzen, die Multibyte-Zeichen betreffen.