1 .\" Hey Emacs! This file is -*- nroff -*- source.
3 .\" Copyright (C) Markus Kuhn, 1996
5 .\" This is free documentation; you can redistribute it and/or
6 .\" modify it under the terms of the GNU General Public License as
7 .\" published by the Free Software Foundation; either version 2 of
8 .\" the License, or (at your option) any later version.
10 .\" The GNU General Public License's references to "object code"
11 .\" and "executables" are to be interpreted as the output of any
12 .\" document formatting or typesetting system, including
13 .\" intermediate and printed output.
15 .\" This manual is distributed in the hope that it will be useful,
16 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
17 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 .\" GNU General Public License for more details.
20 .\" You should have received a copy of the GNU General Public
21 .\" License along with this manual; if not, write to the Free
22 .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
25 .\" 1995-11-26 Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
26 .\" First version written
28 .\" 2000-02-14 Sebastian Rittau <srittau@jroger.in-berlin.de>
29 .\" Translated into German
31 .TH UTF-8 7 "14. Februar 2001" "Linux" "Verschiedenes"
33 UTF-8 \- eine ASCII-kompatible Unicode-Kodierung
36 .BR Unicode -Zeichensatz
37 ist durch 16-Bit-Wörter definiert. Die einfachste
40 besteht aus einer Folge von 16-Bit-Zeichen. Solche Zeichenketten
41 können 8-Bit-Bestandteile wie '\\0' or '/' enthalten, die eine
42 besondere Bedeutung z.B. in Dateinamen oder Bibliotheksfunktionen
43 besitzen. Außerdem arbeiten die meisten UNIX-Programme mit
45 und können 16-Bit-Wörter nicht ohne größere Änderungen verarbeiten.
48 keine geeignete externe Kodierung von
50 in Dateinamen, Text-Dateien, Environment-Variablen, etc. Das
51 .BR "ISO 10646 Universal Character Set (UCS)" ,
54 wird sogar durch 31-Bit-Wörter definiert. Die einfache
56 (eine Folge von 32-Bit-Wörtern) leidet unter denselben Probleme wie die
65 hat diese Probleme nicht und sollte deshalb für den
66 .BR Unicode -Zeichensatz
67 unter unixoiden Betriebssystemen verwendet werden.
71 besitzt die folgenden Eigenschaften:
76 0x00000000 bis 0x0000007f (die klassischen in
78 enthaltenen Zeichen) werden einfach als die Bytes 0x00 bis 0x7f kodiert.
80 .BR ASCII -Kompatibilität
81 sicher.) Das bedeutet, dass Dateien
82 und Zeichenketten, die nur aus 7-Bit-Zeichen bestehen, unter
86 dieselbe Kodierung haben.
91 über 0x7f werden als Folge mehrerer Bytes im Bereich 0x80 bis 0xfd
92 dargestellt, so dass kein
94 als Teil eines anderen Zeichens
95 auftritt und es keine Probleme z.B. mit '\\0' oder '/' gibt.
98 Die lexikographische Sortierreihenfolge von
99 .BR UCS-4 -Zeichenketten
100 wird nicht beeinträchtigt.
110 Die Bytes 0xfe und 0xff werden nicht von der
115 Das erste Byte einer Folge mehrerer Bytes, die einen einzelnen
116 .RB nicht- ASCII -Zeichen
117 darstellen, ist grundsätzlich im Bereich
118 0xc0 bis 0xfd und zeigt an, wie lang die Folge ist. Alle anderen
119 Bytes der Folge sind im Bereich 0x80 bis 0xbf. Dadurch wird eine
120 einfache Resynchronisation ermöglichst, da die Kodierung
121 status-unabhängig und daher rebust gegenüber fehlenden oder verloren
122 gegangenen Bytes ist.
128 können bis zu sechs Bytes lang sein. Allerdings werden
130 maximal drei Bytes lang. Da Linux nur den 16-Bit
131 .BR Unicode -Zeichensatz
132 benutzt (und nicht den 31-Bit
133 .BR UCS -Zeichensatz),
136 unter Linux ein, zwei oder drei Bytes lang sein.
138 Die folgenden Byte-Folgen werden benutzt, um ein Zeichen darzustellen.
139 Die zu benutzende Folge hängt vom
143 0x00000000 - 0x0000007F:
146 0x00000080 - 0x000007FF:
150 0x00000800 - 0x0000FFFF:
155 0x00010000 - 0x001FFFFF:
161 0x00200000 - 0x03FFFFFF:
168 0x04000000 - 0x7FFFFFFF:
178 müssen durch den Code des Zeichens in Binärdarstellung ersetzt
179 werden. Es wird die jeweils kürzeste Folge benutzt, die den Code
180 des Zeichen darstellen kann.
184 0xa9 = 1010 1001 (das Copyright-Zeichen) wird in
189 11000010 10101001 = 0xc2 0xa9
192 dargestellt und das Zeichen 0x2260 = 0010 0010 0110 0000 (das
193 Ungleich-Symbol) als:
196 11100010 10001001 10100000 = 0xe2 0x89 0xa0
199 ISO 10646, Unicode 1.1, XPG4, Plan 9.
201 Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
203 Deutsche Übersetzung: Sebastian Rittau <srittau@jroger.in-berlin.de>