Provided by: manpages-de_0.5-2ubuntu1_all bug

NAME

       UTF-8 - eine ASCII-kompatible Unicode-Kodierung

BESCHREIBUNG

       Der   Unicode-Zeichensatz   ist  durch  16-Bit-Wörter  definiert.   Die
       einfachste  Unicode-Kodierung  (UCS-2)  besteht  aus  einer  Folge  von
       16-Bit-Zeichen.   Solche  Zeichenketten  können  8-Bit-Bestandteile wie
       ’\0’ or ’/’ enthalten, die eine besondere Bedeutung z.B. in  Dateinamen
       oder  Bibliotheksfunktionen  besitzen.   Außerdem  arbeiten die meisten
       UNIX-Programme mit ASCII-Dateien und können  16-Bit-Wörter  nicht  ohne
       größere  Änderungen  verarbeiten.   Darum  ist  UCS-2  keine  geeignete
       externe Kodierung von Unicode in Dateinamen, Text-Dateien, Environment-
       Variablen,  etc.   Das  ISO  10646  Universal Character Set (UCS), eine
       Erweiterung von Unicode, wird sogar durch 31-Bit-Wörter definiert.  Die
       einfache  UCS-4-Kodierung  (eine Folge von 32-Bit-Wörtern) leidet unter
       denselben Probleme wie die UCS-2-Kodierung.

       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.

EIGENSCHAFTEN

       Die UTF-8-Kodierung besitzt die folgenden Eigenschaften:

       * 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.

KODIERUNG

       Die  folgenden Byte-Folgen werden benutzt, um ein Zeichen darzustellen.
       Die zu benutzende Folge hängt vom UCS-Code des Zeichens ab:

       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

       Die xxx-Bits müssen durch den Code  des  Zeichens  in  Binärdarstellung
       ersetzt  werden.   Es  wird die jeweils kürzeste Folge benutzt, die den
       Code des Zeichen darstellen kann.

BEISPIELE

       Das Unicode-Zeichen 0xa9 = 1010 1001 (das  Copyright-Zeichen)  wird  in
       UTF-8 als

              11000010 10101001 = 0xc2 0xa9

       dargestellt und das Zeichen 0x2260 = 0010 0010 0110 0000 (das Ungleich-
       Symbol) als:

              11100010 10001001 10100000 = 0xe2 0x89 0xa0

KONFORM ZU

       ISO 10646, Unicode 1.1, XPG4, Plan 9.

AUTOR

       Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
       Deutsche Übersetzung: Sebastian Rittau <srittau@jroger.in-berlin.de>

SIEHE AUCH

       unicode(7)