Hauptindex | Abschnitt 7 | Optionen |
Die UTF-8-Kodierung von Unicode und UCS hat diese Probleme nicht und sollte deshalb für den Unicode-Zeichensatz unter unixoiden Betriebssystemen verwendet werden.
* | Die UCS-Zeichen 0x00000000 bis 0x0000007f (die klassischen in US-ASCII enthaltenen Zeichen) werden einfach als die Bytes 0x00 bis 0x7f kodiert. (Die stellt die ASCII-Kompatibilität sicher.) Das bedeutet, dass Dateien und Zeichenketten, die nur aus 7-Bit-Zeichen bestehen, unter ASCII und UTF-8 dieselbe Kodierung haben. |
* | Alle UCS-Zeichen über 0x7f werden als Folge mehrerer Bytes im Bereich 0x80 bis 0xfd dargestellt, so dass kein ASCII-Byte als Teil eines anderen Zeichens auftritt und es keine Probleme z.B. mit '\0' oder '/' gibt. |
* | Die lexikographische Sortierreihenfolge von UCS-4-Zeichenketten wird nicht beeinträchtigt. |
* | Alle 2^31 UCS-Zeichen können mit UTF-8 kodiert werden. |
* | Die Bytes 0xfe und 0xff werden nicht von der UTF-8-Kodierung benutzt. |
* | Das erste Byte einer Folge mehrerer Bytes, die einen einzelnen nicht-ASCII-Zeichen darstellen, ist grundsätzlich im Bereich 0xc0 bis 0xfd und zeigt an, wie lang die Folge ist. Alle anderen Bytes der Folge sind im Bereich 0x80 bis 0xbf. Dadurch wird eine einfache Resynchronisation ermöglichst, da die Kodierung status-unabhängig und daher rebust gegenüber fehlenden oder verloren gegangenen Bytes ist. |
* | UTF-8 kodierte UCS-Zeichen können bis zu sechs Bytes lang sein. Allerdings werden Unicode-Zeichen maximal drei Bytes lang. Da Linux nur den 16-Bit Unicode-Zeichensatz benutzt (und nicht den 31-Bit UCS-Zeichensatz), können UTF-8-Folgen unter Linux ein, zwei oder drei Bytes lang sein. |
0x00000000 - 0x0000007F: | |
0xxxxxxx | |
0x00000080 - 0x000007FF: | |
110xxxxx 10xxxxxx | |
0x00000800 - 0x0000FFFF: | |
1110xxxx 10xxxxxx 10xxxxxx | |
0x00010000 - 0x001FFFFF: | |
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx | |
0x00200000 - 0x03FFFFFF: | |
111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx | |
0x04000000 - 0x7FFFFFFF: | |
1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx | |
11000010 10101001 = 0xc2 0xa9
dargestellt und das Zeichen 0x2260 = 0010 0010 0110 0000 (das Ungleich-Symbol) als:
11100010 10001001 10100000 = 0xe2 0x89 0xa0
14. Februar 2001 | UTF-8 (7) | Linux |
Hauptindex | Abschnitt 7 | Optionen |
Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.
“ | What is this horrible fascination with Unix? The operating system of the 1960s, still gaining in popularity in the 1990s. | ” |
— Donald A. Norman |