Ein Buchstabe des Alphabets mit einer Ausspracheunterscheidung, wie der auf Deutsch verwendete Umlaut, wird als zwei verstümmelte Buchstaben angezeigt. Zum Beispiel wird der Ortsname Kärnten zu Kärnten.
Die meisten anderen Alphabete sind nicht verstümmelt, daher ist es schwer zu bemerken (wenn Sie mit "Kärnten" googeln, werden Sie viele verstümmelte Websites sehen).
Dieses Mal hatte ich dieses Problem beim Lesen und Schreiben der Exif-Metadaten eines Bildes in Java.
utf-8
Die Zeichenkette gespeichert alsiso-8859-1
Weil es als gelesen wurde.
Unten finden Sie ein Beispiel für die Ausführung mit Java REPL.
python
java> String s = new String("Kärnten")
java> byte[] iso = s.getBytes("ISO-8859-1")
byte[] iso = [75, -28, 114, 110, 116, 101, 110]
java> byte[] utf8 = s.getBytes("UTF-8")
byte[] utf8 = [75, -61, -92, 114, 110, 116, 101, 110]
Somit wird "ä" in ISO-8859-1 durch 1 Byte ("-28") und in UTF-8 durch 2 Byte ("-61, -92") dargestellt. Zu. Wenn Sie eine Byte-Zeichenfolge in UTF-8 speichern und dann als ISO-8859-1 lesen, wird `-61``` als" Ã "und`
-92``` als "¤" interpretiert. Damit
python
java> new String(utf8, "ISO-8859-1")
Kärnten
Es wird so etwas.
Gleiches gilt für andere Ausspracheunterscheidungen. Beispiel:
Geben Sie natürlich den richtigen Zeichencode zum Lesen und Schreiben an.
python
java> new String(utf8, "ISO-8859-1");
Kärnten
java> new String(iso, "ISO-8859-1");
Kärnten
https://forum.httrack.com/readmsg/18923/indexhtml