Heim >Java >JavaBase >Java-String verstümmelte Zeichen

Java-String verstümmelte Zeichen

angryTom
angryTomOriginal
2019-11-18 10:22:394196Durchsuche

Java-String verstümmelte Zeichen

verstümmelter Java-String-Code

Das Problem besteht darin, dass das System die Kodierungsmethoden für Vorabversion, Produktion und lokal verwendet Umgebungen sind inkonsistent. Der Systemstandard ist UTF-8, während die Standardcodierung für Vorabversions- und Produktionsumgebungen GBK ist, was zu verstümmelten Zeichen führt.

Wenn die Kodierungsmethode nicht angegeben ist, wird standardmäßig die Systemkodierungsmethode verwendet.

String csn = Charset.defaultCharset().name();
try {
    // use charset name decode() variant which provides caching.
    return decode(csn, ba, off, len);
} catch (UnsupportedEncodingException x) {
    warnUnsupportedCharset(csn);
}
try {
    return decode("ISO-8859-1", ba, off, len);
} catch (UnsupportedEncodingException x) {
    // If this code is hit during VM initialization, MessageUtils is
    // the only way we will be able to get any kind of error message.
    MessageUtils.err("ISO-8859-1 charset not available: " +
        x.toString());
    // If we can not find ISO-8859-1 (a required encoding) then things
    // are seriously wrong with the installation.
    System.exit(1);
    return null;
}
System.getProperty("file.encoding") //查看系统默认编码方式

Die Lösung ist wie folgt:

1. Transkodieren bei Verwendung von String

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);

2 Zeichenfolgen werden transkodiert

String decodeStr=null;
decodeStr = URLDecoder.decode(url, "utf-8");

Daher muss bei Verwendung von String die Kodierungsmethode unabhängig von Kodierung oder Dekodierung angegeben werden, da sie sonst mit der Systemumgebung gekoppelt wird.

php Chinesische Website, eine große Anzahl kostenloser Java-Einführungs-Tutorials, willkommen zum Online-Lernen!

Das obige ist der detaillierte Inhalt vonJava-String verstümmelte Zeichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Ist Java das ein Zeiger?Nächster Artikel:Ist Java das ein Zeiger?