.\" -*- coding: UTF-8 -*-
.\" Copyright (C) Markus Kuhn, 1995, 2001
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" .
.\" %%%LICENSE_END
.\"
.\" 1995-11-26 Markus Kuhn
.\" First version written
.\" 2001-05-11 Markus Kuhn
.\" Update
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH UNICODE 7 "6. März 2019" GNU Linux\-Programmierhandbuch
.SH BEZEICHNUNG
Unicode \- universeller Zeichensatz
.SH BESCHREIBUNG
Der internationale Standard ISO 10646 definiert den Universal Character Set
(UCS). UCS enthält sämtliche Zeichen aller anderen Zeichensatz\-Standards. Er
garantiert auch »round\-trip compatibility«; mit anderen Worten können
Konvertierungstabellen so erstellt werden, dass beim Konvertieren einer
Zeichenkette zwischen einer anderen Kodierung und UCS keinerlei Information
verlorengeht.
.PP
Mit den in UCS enthaltenen Zeichen können praktisch alle bekannten Sprachen
dargestellt werden. Dies umfasst nicht nur die lateinische, griechische,
kyrillische, hebräische, arabische, armenische und georgische Schrift,
sondern auch chinesische, japanische und koreanische Han\-Ideogramme sowie
Schriften wie Hiragana, Katakana, Hangul, Devanagari, Bengali, Gurmukhi,
Gujarati, Oriya, Tamil, Telugu, Kannada, Malayalam, Thai, Lao, Khmer,
Bopomofo, Tibetisch, Runen, Äthiopisch, Canadian Syllabics (für die Sprachen
kanadischer Ureinwohner), Cherokee, Mongolisch, Ogham, Birmanisch, Sinhala,
Thaana, Yi und andere. Für noch nicht abgedeckte Schriften wird weiter daran
geforscht, wie sie am besten für Computernutzung kodiert werden. Eines Tages
werden auch sie aufgenommen werden. Dazu könnten nicht nur Hieroglyphen und
verschiedene historische indoeuropäische Sprachen gehören, sondern auch
einige ausgewählte Kunstsprachen wie Tengwar, Cirth und Klingonisch. UCS
umfasst auch eine große Anzahl von grafischen, typografischen,
mathematischen und wissenschaftlichen Symbolen, einschließlich den von TeX,
PostScript, APL, MS\-DOS, MS\-Windows, Macintosh, OCR\-Schriften zur Verfügung
gestellten, ebenso wie die Schriften vieler Textverarbeitungs\- und
Publishing\-Systeme. Und es kommen weitere hinzu.
.PP
Der UCS\-Standard (ISO 10646) beschreibt eine
31\-Bit\-Zeichensatzarchitektur. Sie besteht aus 128 24\-Bit\-\fIGruppen\fP, die
jeweils in 256 16\-Bit\-\fIEbenen\fP aus 256 8\-Bit\-\fIReihen\fP mit 256 \fISpalten\fP
(eine für jedes Zeichen) aufgeteilt sind. Teil 1 der Norm (ISO 10646\-1)
definiert die ersten 65534 Code\-Positionen (0x0000 bis 0xfffd), welche die
\fIBasic Multilingual Plane\fP (BMP) bilden, also Ebene 0 in der Gruppe 0. Teil
2 der Norm (ISO 10646\-2) fügt der Gruppe 0 Zeichen außerhalb der BMP in
mehreren \fIergänzenden Ebenen\fP im Bereich 0x10000 bis 0x10ffff zu. Es ist
nicht geplant, der Norm Zeichen jenseits von 0x10ffff hinzuzufügen. Damit
wird in absehbarer Zukunft aus dem gesamten Code\-Raum nur ein kleiner Teil
der Gruppe 0 tatsächlich verwendet werden. Die BMP enthält alle Zeichen
anderer häufig verwendeter Zeichensätze. Die Ergänzungsebenen nach ISO
10646\-2 decken nur eher exotische Zeichen für spezielle Anforderungen in der
Wissenschaft, dem Druck von Wörterbüchern, dem Verlagswesen und
übergeordneten Protokollen sowie von Enthusiasten ab.
.PP
Die Darstellung jedes einzelnen UCS\-Zeichens als 2\-Byte\-Wort wird als die
UCS\-2\-Form (nur für BMP\-Zeichen) bezeichnet, während UCS\-4 die einzelnen
Zeichen durch ein 4\-Byte\-Wort darstellt. Darüber hinaus gibt es die zwei
Codierungsformen UTF\-8 für Abwärtskompatibilität mit ASCII\-Software und
UTF\-16 für die abwärtskompatible Bearbeitung von Nicht\-BMP\-Zeichen bis
0x10FFFF durch UCS\-2\-Software.
.PP
Die UCS\-Zeichen 0x0000 bis 0x007f sind mit denen des klassischen
US\-ASCII\-Zeichensatzes und die Zeichen im Bereich von 0x0000 bis 0x00ff mit
denen des ISO\-8859\-1\-Latin\-1\-Zeichensatzes identisch.
.SS Kombinationszeichen
Einige Code\-Punkte von UCS wurden sogenannten \fIKombinationszeichen\fP
(combining characters) zugewiesen. Sie sind mit den Akzenttasten auf
Schreibmaschinen vergleichbar, bei denen sich die Schreibposition nicht
verändert. Ein Kombinationszeichen fügt dem vorhergehenden Zeichen einfach
einen Akzent hinzu. Den wichtigsten Zeichen mit Akzenten wurden eigene Codes
im UCS zugewiesen. Mit dem Mechanismus der Kombinationszeichen können
Akzente und andere diakritische Markierungen zu jedem beliebigen Zeichen
hinzugefügt werden. Kombinationszeichen folgen immer dem Zeichen, das sie
verändern. Zum Beispiel kann das deutsche »Ä« (oder »Latin capital letter A
with diaeresis«) entweder durch den festen UCS\-Code 0x00c4 oder alternativ
als Kombination des normalen »A« (»Latin capital letter A«) gefolgt vom
Kombinationszeichen für »doppelt gepunktet« (combining diaeresis) als 0x0041
0x0308 dargestellt werden.
.PP
Kombinationszeichen sind wesentlich zum Beispiel für die Codierung der
Thai\-Schrift, für den Satz mathematischer Formeln und Nutzer der
internationalen Lautschrift.
.SS Implementierungsstufen
Da nicht erwartet wird, dass alle Systeme komplexere Mechanismen wie
Kombinationszeichen unterstützen, beschreibt ISO 10646 die folgenden drei
\fIImplementierungsstufen\fP für UCS:
.TP 0.9i
Stufe 1
Kombinationszeichen und Hangul\-Jamo (eine Kodierungsvariante der
koreanischen Schrift, in der Zeichen für Hangul\-Silben als zwei\- oder
dreistellige Vokal\-/Konsonanten\-Kombinationen codiert werden) werden nicht
unterstützt.
.TP
Stufe 2
Zusätzlich zu Stufe 1 sind Kombinationszeichen jetzt für einige Sprachen, in
denen sie unerlässlich sind (z. B. Thai, Lao, Hebräisch, Arabisch,
Devanagari, Malayalam) erlaubt.
.TP
Stufe 3
Alle UCS\-Zeichen werden unterstützt.
.PP
Der vom Unicode Consortium veröffentlichte Standard Unicode 3.0 enthält
genau die »UCS Basic Multilingual Plane« auf der Implementierungsstufe 3,
wie in ISO 10646\-1:2000 beschrieben. Unicode 3.1 fügte die zusätzlichen
Ebenen von ISO 10646\-2 hinzu. Der Unicode\-Standard und vom Unicode
Consortium veröffentlichte technische Berichte bieten viele zusätzliche
Informationen über die Semantik und die empfohlene Verwendung der
verschiedenen Zeichen. Sie geben Richtlinien und Algorithmen für die
Bearbeitung, das Sortieren, Vergleichen, Normalisieren, Umwandeln und
Anzeigen von Unicode\-Zeichenketten.
.SS "Unicode unter Linux"
Unter GNU/Linux ist der C\-Datentyp \fIwchar_t\fP ein vorzeichenbehafteter
32\-Bit\-Ganzzahl\-Typ. Seine Werte werden von der C\-Bibliothek immer (in allen
Locales) als UCS\-Codewerte interpretiert. Diese Konvention signalisiert die
GNU\-C\-Bibliothek Anwendungen durch die Definition der Konstante
\fB__STDC_ISO_10646__\fP, wie es im ISO\-C99\-Standard spezifiziert ist.
.PP
UCS/Unicode in der ASCII\-kompatiblen UTF\-8\-Multibyte\-Codierung kann wie
ASCII in Ein\-/Ausgabe\-Datenströmen, zur Terminal\-Kommunikation, in
Klartext\-Dateien, Dateinamen und Umgebungsvariablen verwendet werden. Um
allen Anwendungen die Verwendung von UTF\-8 als Zeichencodierung bekannt zu
geben, muss mittels Umgebungsvariablen (z.B. »LANG=en_GB.UTF\-8«) eine
geeignete \fILocale\fP festgelegt werden.
.PP
Die Funktion \fBnl_langinfo(CODESET)\fP gibt den Namen der ausgewählten
Codierung zurück. Mit Bibliotheksfunktionen wie \fBwctomb\fP(3) und
\fBmbsrtowcs\fP(3) können die internen \fIwchar_t\fP\-Zeichen und Zeichenketten in
die System\-Zeichenkodierung konvertiert werden (und auch wieder
zurück). \fBwcwidth\fP(3) gibt an, wie viele Positionen (0…2) der Cursor durch
die Ausgabe eines Zeichens weitergesetzt wird.
.PP
.SS "Bereich für private Nutzung (PUA)"
.\" commit 9d85025b0418163fae079c9ba8f8445212de8568
In der »Basic Multilingual Plane« werden dem Bereich 0xe000 bis 0xf8ff
niemals Zeichen vom Standard zugewiesen werden \- er ist für private Nutzung
reserviert. Für die Linux\-Gemeinde wurde dieser Privatbereich weiter
unterteilt in den Bereich 0xe000 bis 0xefff, der vom Endbenutzer individuell
benutzt werden kann, und den Linux\-Bereich von 0xf000 bis 0xf8ff, in dem
koordiniert gemeinsame Erweiterungen aller Linux\-Benutzer abgelegt
werden. Die Registrierung der der Linux\-Zone zugeordneten Zeichen wird von
LANANA betreut und die Registrierung selbst befindet sich in
\fIDocumentation/admin\-guide/unicode.rst\fP in den Linux\-Kernelquellen (oder
\fIDocumentation/unicode.txt\fP vor Linux 4.10).
.PP
Zwei weitere Ebenen sind für die private Nutzung reserviert: Ebene 16
(»Supplementary Private Use Area\-A«, Bereich 0xf0000 bis 0xffffd) und Ebene
16 (»Supplementary Private Use Area\-B«, Bereich 0x100000 bis 0x10fffd).
.SS Literatur
.IP * 3
Information technology – Universal Multiple\-Octet Coded Character Set (UCS)
– Part 1: Architecture and Basic Multilingual Plane. International Standard
ISO/IEC 10646\-1, International Organization for Standardization, Genf, 2000.
.IP
Dies ist die offizielle UCS\-Spezifikation. Verfügbar unter
.UR http://www.iso.ch/
.UE .
.IP *
The Unicode Standard, Version 3.0. The Unicode Consortium, Addison\-Wesley,
Reading, MA, 2000, ISBN 0\-201\-61633\-5.
.IP *
S.\& Harbison, G.\& Steele. C: A Reference Manual. Fourth edition, Prentice
Hall, Englewood Cliffs, 1995, ISBN 0\-13\-326224\-3.
.IP
Ein gutes Fachbuch über die Programmiersprache C. Die vierte Auflage
behandelt jetzt auch den Nachtrag (Amendment) 1 von 1994 zum ISO\-C\-Standard
(ISO/IEC 9899:1990), der eine große Anzahl neuer C\-Bibliotheksfunktionen zum
Umgang mit Zeichensätzen von mehr als 8 Bit pro Zeichen hinzufügt. Das Buch
behandelt aber noch nicht ISO\-C99\-Standard, welcher die Unterstützung von
Mehrbyte\-Zeichen weiter verbesserte.
.IP *
Technische Unicode\-Berichte
.RS
.UR http://www.unicode.org\:/reports/
.UE
.RE
.IP *
Markus Kuhn: UTF\-8 and Unicode FAQ for UNIX/Linux.
.RS
.UR http://www.cl.cam.ac.uk\:/~mgk25\:/unicode.html
.UE
.RE
.IP *
Bruno Haible: Unicode HOWTO
.RS
.UR http://www.tldp.org\:/HOWTO\:/Unicode\-HOWTO.html
.UE
.RE
.\" .SH AUTHOR
.\" Markus Kuhn
.SH "SIEHE AUCH"
\fBlocale\fP(1), \fBsetlocale\fP(3), \fBcharsets\fP(7), \fButf\-8\fP(7)
.SH KOLOPHON
Diese Seite ist Teil der Veröffentlichung 5.04 des Projekts
Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts, Informationen, wie
Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
sich unter \%https://www.kernel.org/doc/man\-pages/.
.SH ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Johnny Teveßen
und
Martin Eberhard Schauer
erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License Version 3
.UE
oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden,
schicken Sie bitte eine E-Mail an die
.MT debian-l10n-german@\:lists.\:debian.\:org
Mailingliste der Übersetzer
.ME .