Imported tab->space correction by redhat
[infodrom/manpages-de] / man7 / utf-8.7
1 .\" Hey Emacs! This file is -*- nroff -*- source.
2 .\"
3 .\" Copyright (C) Markus Kuhn, 1996
4 .\"
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.
9 .\"
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.
14 .\"
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.
19 .\"
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,
23 .\" USA.
24 .\"
25 .\" 1995-11-26  Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
26 .\"      First version written
27 .\"
28 .\" 2000-02-14  Sebastian Rittau <srittau@jroger.in-berlin.de>
29 .\"      Translated into German
30 .\"
31 .TH UTF-8 7 "14. Februar 2001" "Linux" "Verschiedenes"
32 .SH NAME
33 UTF-8 \- eine ASCII-kompatible Unicode-Kodierung
34 .SH BESCHREIBUNG
35 Der
36 .BR Unicode -Zeichensatz
37 ist durch 16-Bit-Wörter definiert.  Die einfachste
38 Unicode-Kodierung
39 .RB ( UCS-2 )
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
44 .BR ASCII -Dateien
45 und können 16-Bit-Wörter nicht ohne größere Änderungen verarbeiten.
46 Darum ist
47 .B UCS-2
48 keine geeignete externe Kodierung von
49 .B Unicode
50 in Dateinamen, Text-Dateien, Environment-Variablen, etc.  Das
51 .BR "ISO 10646 Universal Character Set (UCS)" ,
52 eine Erweiterung von
53 .BR Unicode ,
54 wird sogar durch 31-Bit-Wörter definiert.  Die einfache
55 .BR UCS-4 -Kodierung
56 (eine Folge von 32-Bit-Wörtern) leidet unter denselben Probleme wie die
57 .BR UCS-2 -Kodierung.
58
59 Die
60 .BR UTF-8 -Kodierung
61 von
62 .B Unicode
63 und
64 .B UCS
65 hat diese Probleme nicht und sollte deshalb für den
66 .BR Unicode -Zeichensatz
67 unter unixoiden Betriebssystemen verwendet werden.
68 .SH EIGENSCHAFTEN
69 Die
70 .BR UTF-8 -Kodierung
71 besitzt die folgenden Eigenschaften:
72 .TP 0.2i
73 *
74 Die
75 .BR UCS -Zeichen
76 0x00000000 bis 0x0000007f (die klassischen in
77 .B US-ASCII
78 enthaltenen Zeichen) werden einfach als die Bytes 0x00 bis 0x7f kodiert.
79 (Die stellt die
80 .BR ASCII -Kompatibilität
81 sicher.) Das bedeutet, dass Dateien
82 und Zeichenketten, die nur aus 7-Bit-Zeichen bestehen, unter
83 .B ASCII
84 und
85 .B UTF-8
86 dieselbe Kodierung haben.
87 .TP
88 *
89 Alle
90 .BR UCS -Zeichen
91 über 0x7f werden als Folge mehrerer Bytes im Bereich 0x80 bis 0xfd
92 dargestellt, so dass kein
93 .BR ASCII -Byte
94 als Teil eines anderen Zeichens
95 auftritt und es keine Probleme z.B. mit '\\0' oder '/' gibt.
96 .TP
97 *
98 Die lexikographische Sortierreihenfolge von
99 .BR UCS-4 -Zeichenketten
100 wird nicht beeinträchtigt.
101 .TP
102 *
103 Alle 2^31
104 .BR UCS -Zeichen
105 können mit
106 .B UTF-8
107 kodiert werden.
108 .TP
109 *
110 Die Bytes 0xfe und 0xff werden nicht von der
111 .BR UTF-8 -Kodierung
112 benutzt.
113 .TP
114
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.
123 .TP
124 *
125 .B UTF-8
126 kodierte
127 .BR UCS -Zeichen
128 können bis zu sechs Bytes lang sein.  Allerdings werden
129 .BR Unicode -Zeichen
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),
134 können
135 .BR UTF-8 -Folgen
136 unter Linux ein, zwei oder drei Bytes lang sein.
137 .SH KODIERUNG
138 Die folgenden Byte-Folgen werden benutzt, um ein Zeichen darzustellen.
139 Die zu benutzende Folge hängt vom
140 .BR UCS -Code
141 des Zeichens ab:
142 .TP 0.4i
143 0x00000000 - 0x0000007F:
144 .RI 0 xxxxxxx
145 .TP
146 0x00000080 - 0x000007FF:
147 .RI 110 xxxxx 
148 .RI 10 xxxxxx
149 .TP
150 0x00000800 - 0x0000FFFF:
151 .RI 1110 xxxx
152 .RI 10 xxxxxx
153 .RI 10 xxxxxx
154 .TP
155 0x00010000 - 0x001FFFFF:
156 .RI 11110 xxx
157 .RI 10 xxxxxx
158 .RI 10 xxxxxx
159 .RI 10 xxxxxx
160 .TP
161 0x00200000 - 0x03FFFFFF:
162 .RI 111110 xx
163 .RI 10 xxxxxx
164 .RI 10 xxxxxx
165 .RI 10 xxxxxx
166 .RI 10 xxxxxx
167 .TP
168 0x04000000 - 0x7FFFFFFF:
169 .RI 1111110 x
170 .RI 10 xxxxxx
171 .RI 10 xxxxxx
172 .RI 10 xxxxxx
173 .RI 10 xxxxxx
174 .RI 10 xxxxxx
175 .PP
176 Die
177 .IR xxx -Bits
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.
181 .SH BEISPIELE
182 Das
183 .BR Unicode -Zeichen
184 0xa9 = 1010 1001 (das Copyright-Zeichen) wird in
185 .B UTF-8
186 als
187 .PP
188 .RS
189 11000010 10101001 = 0xc2 0xa9
190 .RE
191 .PP
192 dargestellt und das Zeichen 0x2260 = 0010 0010 0110 0000 (das
193 Ungleich-Symbol) als:
194 .PP
195 .RS
196 11100010 10001001 10100000 = 0xe2 0x89 0xa0
197 .RE
198 .SH "KONFORM ZU"
199 ISO 10646, Unicode 1.1, XPG4, Plan 9.
200 .SH AUTOR
201 Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
202 .br
203 Deutsche Übersetzung: Sebastian Rittau <srittau@jroger.in-berlin.de>
204 .SH "SIEHE AUCH"
205 .BR unicode (7)