.\" -*- 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 "15. März 2016" 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. 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. 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. 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)" 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\-User abgelegt werden. Die Registrierung der der Linux\-Zone zugeordneten Zeichen wird von LANANA betreut und die Registrierung selbst befindet sich in \fIDocumentation/unicode.txt\fP in den Linux\-Kernelquellen. .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. 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. 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 4.09 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 GNU General Public License Version 3 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 .