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!