1 .\" Hey Emacs! This file is -*- nroff -*- source.
3 .\" Copyright (C) Markus Kuhn, 1995
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., 675 Mass Ave, Cambridge, MA 02139,
25 .\" 1995-11-26 Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
26 .\" First version written
27 .\" 1998-03-11 Johnny Teveßen <j.tevessen@gmx.de>
28 .\" Translated to German
30 .TH UNICODE 7 "27. Dezember 1995" "Linux" "Verschiedenes"
32 Unicode \- der allumfassende 16bit-Zeichensatz
34 Der internationale Standard
37 .BR "Universal Character Set (UCS)" .
39 enthält sämtliche Zeichen sämtlicher anderen Zeichensatzstandards.
41 .BR "round-trip compatibility" ,
42 d.h. es können Konvertierungstabellen auf eine Art erstellt werden,
43 dass beim Konvertieren eines Strings zwischen einer anderen
46 keinerlei Information verlorengeht.
49 enthält Zeichen zur Repräsentation beinahe jeder bekannten Sprache.
50 Das beinhaltet neben den vielen Sprachen, die Erweiterungen der
51 lateinischen Schrift benutzen, auch die folgenden Schriften und
52 Sprachen: Griechisch, Kyrillisch, Hebräisch, Arabisch, Armenisch,
53 Gregorianisch, Japanisch, Chinesisch, Hiragana, Katakana,
54 Koreanisch, Hangul, Devangari, Bengalisch, Gurmukhi, Gujarati,
55 Oriya, Tamilisch, Telugu, Kannada, Malayam, Thai, Lao,
56 Bopomofo und einige andere. Zurzeit wird daran gearbeitet,
57 weitere Schriften wie Tibetanisch, Khmer, Runen, Äthiopisch,
58 Hieroglyphen, verschiedene Indo-Europäische Sprachen und viele
59 andere ebenfalls zu erfassen. Bei den meisten der letzteren
60 Schriften war bis zum Zeitpunkt der Veröffentlichung des
61 Standards 1993 noch nicht geklärt, wie sie am besten
62 kodiert werden könnten. Zusätzlich zu den von diesen Schriften
63 benötigten Zeichen wurde auch eine große Anzahl von graphischen,
64 typographischen, mathematischen und wissenschaftlichen Symbolen
65 wie etwa denen von TeX, PostScript, MS-DOS, Macintosh, Videotext,
66 OCR und vielen Textverarbeitungen integriert, außerdem spezielle
67 Codes, die round-trip compability mit allen existierenden
68 Zeichensätzen garantieren.
72 Standard (ISO 10646) beschreibt eine 31-bittige Zeichensatzarchitektur.
73 Bisher wurde jedoch erst den ersten 65534 Positionen (0x0000 bis
75 .BR "Basic Multilingual Plane (BMP)" ,
76 Zeichen zugewiesen, und es wird erwartet, dass nur sehr exotische
77 Zeichen (z.B. Hieroglyphen) für besondere wissenschaftliche Zwecke
78 jemals außerhalb dieser 16-Bit BMP platziert werden.
82 Zeichen 0x0000 bis 0x007f sind mit denen des klassischen
84 Zeichensatzes, und die Zeichen im Bereich von 0x0000
85 bis 0x00ff mit denen des
87 Zeichensatzes identisch.
88 .SH KOMBINATIONSZEICHEN
92 .BR "combining characters"
93 (Kombinationszeichen) zugewiesen.
94 Sie sind mit den Akzenttasten auf Schreibmaschinen vergleichbar,
95 bei denen sich die Schreibposition nicht verändert. Ein
96 Kombinationszeichen fügt dem vorhergehenden Zeichen einfach
97 einen Akzent hinzu. Die wichtigsten akzentuierten Zeichen
98 besitzen eigene Codes im
100 doch der Mechanismus der Kombinationszeichen erlaubt es,
101 Akzente und andere diakritische Markierungen zu jedem beliebigen
102 Zeichen hinzuzufügen. Kombinationszeichen folgen immer demjenigen
103 Zeichen, auf das sie sich auswirken sollen. Zum Beispiel kann das
104 Deutsche "Ä" (oder "Latin capital letter A with diaeresis")
105 entweder durch den festen
107 Code 0x00c4 oder alternativ als Kombination des normalen "A"
108 ("Latin capital letter A") gefolgt vom Kombinationszeichen
109 für "doppelt gepunktet" ("combining diaeresis") als 0x0041
110 0x0308 dargestellt werden.
111 .SH IMPLEMENTATIONSSTUFEN
112 Da nicht erwartet werden kann, dass alle Systeme komplexere
113 Mechanismen wie Kombinationszeichen unterstützen können,
114 spezifiziert ISO 10646 die folgenden drei Implementationsstufen
119 Kombinationszeichen und Hangul Jamo-Zeichen (eine besondere,
120 kompliziertere Kodierung der koreanischen Schrift, in der
121 Hangul-Silben als zwei bis drei Unterzeichen kodiert werden)
122 werden nicht unterstützt.
125 Wie Stufe 1, außer dass in einigen Schriften einige
126 Kombinationszeichen nicht erlaubt sind (z.B. in Hebräisch,
127 Arabisch, Devangari, Bengalisch, Gurmukhi, Gujarati, Oriya, Tamil,
128 Telugo, Kannada, Malayalam, Thai und Lao).
133 Zeichen werden unterstützt.
135 Der vom Unicode Consortium veröffentlichte Unicode 1.1-Standard
137 .B UCS Basic Multilingual Plane
138 auf Implementationsstufe 3, wie sie in ISO 10646 beschrieben ist.
139 Unicode 1.1 fügt der Definition von ISO 10646 außerdem einige
140 semantische Definitionen für einige Zeichen hinzu.
141 .SH UNICODE UNTER LINUX
142 Unter Linux sollte im Moment nur
144 auf Implementationsstufe 1 benutzt werden, um die Komplexizität
145 der Implementation von Kombinationszeichen gering zu halten.
146 Die höheren Implementationsstufen sind eher für besondere
147 Textverarbeitungsformate angebracht, jedoch nicht als universeller
148 Systemzeichensatz. Der C-Typ
150 ist in Linux ein 16-Bit unsigned int, und seine Werte werden als
155 Die "locale"-Einstellung bestimmt, ob die Zeichenkodierung des
156 Systems beispielsweise
161 Bibliotheksfunktionsn wie etwa
166 können benutzt werden, um die internen
168 Zeichen und Strings in die Zeichenkodierung des Systems und
169 zurück zu konvertieren.
173 werden dem Bereich 0xe000 bis 0xf8ff niemals Zeichen vom
174 Standard zugewiesen werden \- er ist für private Benutzung
175 reserviert. Für die Linux-Gemeinde wurde dieser Privatbereich
176 weiter unterteilt in den Bereich 0xe000 bis 0xefff, der vom
177 Endbenutzer individuell benutzt werden kann, und dem Linux-Bereich
178 von 0xf000 bix 0xf8ff, in dem koordiniert gemeinsame
179 Erweiterungen aller Linux-User abgelegt werden. Die Registrierung
180 der diesem Bereich zugeordneten Zeichen wird momentan von
181 H. Peter Anvin <Peter.Anvin@linux.org>, Yggdrasil Computing, Inc.
182 verwaltet. Sie enthält einige DEC VT100 Graphikzeichen, die in
183 Unicode fehlen, ermöglicht direkten Zugriff auf die Zeichen
184 im Fontbuffer der Console und enthält Zeichen, die von
185 einigen weiteren Schriften wie Klingonisch benutzt werden.
189 Information technology \- Universal Multiple-Octet Coded Character
190 Set (UCS) \- Part 1: Architecture and Basic Multilingual Plane.
191 International Standard ISO 10646-1, International Organization
192 for Standardization, Genf, 1993.
194 Dies ist die offizielle Spezifikation von
196 Ziemlich offiziell, ziemlich dick und auch ziemlich teuer.
197 Informationen zur Bestellung gibt es auf http://www.iso.ch/.
200 The Unicode Standard \- Worldwide Character Encoding Version 1.0.
201 The Unicode Consortium, Addison-Wesley,
204 Unicode 1.1.4 ist bereits verfügbar. Die Änderungen gegenüber
205 dem 1.0er-Buch sind auf ftp://ftp.unicode.org/ erhältlich.
206 Unicode 2.0 wird 1996 erneut als Buch veröffentlicht werden.
209 S. Harbison, G. Steele. C \- A Reference Manual. Fourth edition,
210 Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3.
212 Ein gutes Referenzbuch über die Programmiersprache C. Die vierte
213 Auflage behandelt jetzt auch das Amendment 1 von 1994 zum ISO
214 C-Standard (ISO/IEC 9899:1990), das eine große Anzahl neuer
215 C-Bibliotheksfunktionen zum Umgang mit Zeichensätzen von
216 mehr als 8 Bit pro Zeichen hinzufügt.
218 Zum Zeitpunkt der Erstellung dieser Manpage war die Unterstützung
221 durch die Linux libc weit entfernt davon, vollständig zu sein.
223 Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
225 Johnny Teveßen <j.tevessen@gmx.de>