JAX07: UTF-8 – Encoding und seine Tücken
Zeichenkodierung -> wikipedia
iso-8859-1 -> Latin1 unter Linux
cp1252(iso8859+€)
Möglichkeiten für Umlaute in Java:
Unicode Escape ü -> \u00F6
Richtiges Source-Encoding verwenden
javac -encoding UTF-8
bei ant : encoding=“UTF-8″
bei maven: <compilerArguments> <encoding>
Ab unicode 3.1 mehr als 2 Byte, deshalb jetzt 3 Byte
unicode.org version 5.0
UTF-8 bildet Unicode ab, ist nicht Unicode!
Java 5 -> Unicode 4.0
FileReader liest die Datei im Encoding von der Maschine, auf der das Programm läuft
Character.toChars()-> wenn 2 char, also 4 bytes -> Java 5
Default Encoding mit file.encoding property. allerdings nicht zur laufzeit änderbar
!!!.property Dateien MÜSSEN in iso-8859-1 sein java.util.properties!!!
native2ascii
xml
in xml deklaration immer das encoding angeben und datei immer in utf-8 speicher
csv
cp1252
cmd chcp
Datenbank
Mozilla Plugin: Live HTTP Headers
Auf Serverseite wird beim Interpretieren einer Anfrage standardmäßig immer iso-8859-1 verwendet.
Man kann dem Server aber sagen, was das encoding sein soll.
request.setCharacterEncoding(„UTF-8“) (z.b. mit einem Filter machen) (haben wir das so?)
schoenitzer.de/encoding.html
JSR204
Es gibt eigentlich keine universelle Möglichkeit um herauszufinden, welches encoding eine Datei hat, weil 2 encodings genau die gleiche datei liefern können.
Character Escaping als Möglichkeit, zwischen verschiedenen Encodings zu konvertieren
Unterschied zw. UTF-8 und UTF-16
UTF-8: 1,2,3,4 Bytes überprüfung, ob es zu einem Byte auf wirklich ein Zeichen gibt.
UTF-16: 2 oder 4 Bytes (braucht deshalb mehr zeichen als utf-8)
UTF-32: 4 Bytes
Bei Schnittstellen sollte man dafür sorgen, dass auch nur die Sachen reinkommen, dieauch akzeptiert werden.
Kommentar verfassen