Moin, Am Sa, 2003-09-20 um 02.37 schrieb David Haller:
Am Sat, 20 Sep 2003, Joerg Rossdeutscher schrieb:
UTF8 ist ebenso wie 8859-15 eine bestimmte Codierung. Das ist der kommende Standard für Linux. Der Umstieg ist ein ziemlicher Brocken, denn Codierungen wie 8859 "können" nur 255 Zeichen, während solche wie UTF auch Chinesisch und englisch in einer Datei erfassen.
*moep*
Punktabzug wegen moep'ens! :-) Siehst du in der obigen Oberflächlichen Erklärung einen Fehler, verglichen zu deiner=
UTF-8 ist eine bestimmte Variante die 32bit Unicode Zeichen zu kodieren, bei der "zufaelligerweise" die ersten 7bit US-ASCII entsprechen.
UTF-8 hat den Vorteil, dass fuer US-ASCII Zeichen auch jew. nur ein Byte benotigt wird.
Gehen die Zeichen ueber 7bit/US-ASCII hinaus, so kodiert UTF-8 zuerst mit 2 Bytes, dann mit 3, dann mit 4 und (AFAIK) schliesslich mit 5 Bytes. Ist das Bit 8 == 1, dann heisst das nix anderes, als dass das UTF-8 Zeichen unvollstaendig ist, und dass das naechste Byte herangezogen werden soll -- ebenso bei Bit 15, 23 und 31.
Die Details weiss ich jetzt allerdings auch nicht. Da gibt es aber genug Doku zu.
Der Vorteil von UTF ist, daß es keine "wirren Steuerzeichen" (TM) produziert. Wenn man alles straight in 2-Byte-Codierung durchziehen würde, gäbe es Zeichen, die z.B. den Code 410D hätten. Für ein 2-Byte-fähiges Programm wäre das dann korrekt das Isländische Zeichen für "Damentoilette", aber ein altes 1-Byte-Programm würde hier stolpern: Es würe 410D interpretieren als zwei Zeichen: 41 und 0D. Für 41 würde es ein "A" nehmen, aber "0D" ist ein Zeilenumbruch, und -rumms- würden z.B. die ganzen schönen Kommandozeilentools nicht mehr laufen. Dank der UTF-Codierung gibt es solche Stolperfallen nicht. Ein UTF-Code enthält niemals einen Umbruch, ein Null-Byte oder solche "Specials". Ein altes Programm vielleicht aus "ä}" statt "Damentoilette", aber die Funktionalität bleibt gewährleistet. Außer für Isländerinnen, die ein Klo suchen. Sorry. Gruß, Ratti