Java konvertieren von ISO-8859-1 zu UTF-8
Ich habe eine properties-Datei mit dem asiatischen übersetzungen, die ich glaube, ist gespeichert als ISO-8859-1. Ich bin versucht zu konvertieren zu UTF-8. So è¦å:
würde gleich 警告:
Ich habe versucht mehrere Methoden, die auf dieser Website aufgeführt haben, sowie einige andere Seiten, aber kein Glück hatten.
byte[] isoBytes = line.getBytes("ISO-8859-1");
byte[] utf8 = new String(isoBytes, "ISO-8859-1").getBytes("UTF-8");
CharBuffer charBuf = null;
Charset isocharset = Charset.forName("iso-8859-1");
CharsetDecoder isoDecoder = Charset.forName("iso-8859-1").newDecoder();
CharsetDecoder utf8Decoder = Charset.forName("UTF-8").newDecoder();
byte sByte[] = line.getBytes("iso-8859-1");
charBuf = utf8Decoder.decode(isoBuf);
Was ist der einfachste Weg, um zu konvertieren è¦å:
zu 警告:
?
Danke
Reich
@Pshemo hatte die Antwort, die ich suchte
byte[] isoBytes = line.getBytes("ISO-8859-1");
System.out.println(new String(isoBytes, "UTF-8"));
Danke Euch allen für Eure Hilfe
byte[] isoBytes = line.getBytes("ISO-8859-1"); System.out.println(new String(isoBytes, "UTF-8"));
scheint einwandfrei zu funktionieren.Sie kann nicht schreiben, alle Zeichen über 255 ISO-8859-1, esp keine asiatischen Zeichen. Wenn Sie asiatische Zeichen, Sie sind nicht mit ISO-8859-1.
Danke, dass ist genau das was ich suchte. Mein problem wurde versucht zu konvertieren von utf8-byte-array wieder. Vielen Dank für die Klärung.
InformationsquelleAutor user3351706 | 2014-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser arbeitete für mich:
@Pshemo hatte die Antwort, die ich suchte
InformationsquelleAutor Gustavo
Der einfachste und sicherste Weg wäre, um speichern Sie die Datei als UTF-8 und Lesen Sie es als solches.
Wahrscheinlich die Antworten, die Sie fanden hier bereits auch festgestellt, dass die ISO-Latin-1 (ISO-8859-1) kann nicht speichern alle code-Punkte, die UTF-8 umgehen kann (vor allem die asiatischen Zeichen), also die Speicherung von Eigenschaften (text-Ressourcen?) als ISO-Latin-1 wird zu Verlusten führen.
Also entweder speichern Sie es als UTF-8 oder unicode verwenden, code, der Punkte, z.B.
\u8b66\u544a
für警告
(Warning
🙂 ).InformationsquelleAutor Thomas
In der Tat die Anzeige von UTF-8 content-ergeben würde, die in ISO-8859-1: è¦å (plus etwas). So, dass ist in Ordnung.
Also die Datei ist in UTF-8. Das JDK hat das tool
native2ascii
zu konvertieren und unconvert u-escaping nicht-ASCII-Zeichen zu\uXXXX
.Einen Programmierer ist der editor wie JEdit oder Notepad++, um sicher zu sein Kodierungen.
InformationsquelleAutor Joop Eggen