Lösung für verstümmelte Java-Strings: (empfohlen: Java-Video-Tutorial)
System.out.println(str); String str1 = new String(str.getBytes("ISO-8859-1"), "utf-8"); System.out.println(str1); String str2 = new String(str.getBytes("gb2312"), "utf-8"); System.out.println(str2); String str3 = new String(str.getBytes("gbk"), "utf-8"); System.out.println(str3);
str.getBytes(charsetName);charsetName ist die ursprüngliche Zeichenkodierung
„utf-8“ dient dazu, str in die UTF-8-Kodierung umzuwandeln.
new String(str.getBytes("gbk"),"iso8859-1")
Schritt 1: byte[] bytes=str.getBytes("gbk")
Weisen Sie die Java Virtual Machine an, Chinesisch mit der Methode „gbk“ in ein Byte-Array zu konvertieren. Ein chinesisches Zeichen entspricht zwei Bytes.
Der entsprechende zweite Schritt ist:
String s=new String(bytes, „iso8859-1“), zu diesem Zeitpunkt wird jedes Byte zu einem „?“ zusammengesetzt. Zu diesem Zeitpunkt ist s mehrere „?“. Wir können „?“ als ein spezielles chinesisches Zeichen betrachten, das ohne Verlust wiederhergestellt werden kann. Die Methode
java.lang.String.getBytes(String charsetName) codiert diesen String mithilfe des angegebenen Zeichensatzes in eine Bytesequenz und speichert das Ergebnis in einem neuen Byte-Array.
Deklaration
Das Folgende ist die Deklaration der java.lang.String.getBytes()-Methode
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
Parameter: Zeichensatz – Dies ist der Name eines unterstützten Zeichens Satz.
Rückgabewert: Diese Methode gibt das resultierende Byte-Array zurück.
neue String(byte[],decode)-Methode
Im Vergleich zu getBytes können Sie das „中“-Zeichen durch new String(byte[],decode) wiederherstellen
Dieser neue String(byte[],decode) verwendet tatsächlich die angegebene Kodierungsdekodierung, um byte[] in einen String zu analysieren.
Ausnahme: UnsupportedEncodingException – Wenn der angegebene Zeichensatz nicht unterstützt wird.
Weitere Java-Kenntnisse finden Sie in der Spalte Java Basic Tutorial.
Das obige ist der detaillierte Inhalt vonEinführung in die Lösung verstümmelter Zeichenfolgenzeichen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!