Man page - charsets(7)

Packages contains this manual

Available languages:

en fr es it ja ro zh_TW zh_CN de

Manual

charsets

BEZEICHNUNG
BESCHREIBUNG
ASCII
ISO/IEC 8859
KOI8-R / KOI8-U
GB 2312
Big5
JIS X 0208
KS X 1001
ISO/IEC 2022 und ISO/IEC 4873
TIS-620
Unicode
SIEHE AUCH
ÜBERSETZUNG

BEZEICHNUNG

charsets - Zeichensatzstandards und Internationalisierung

BESCHREIBUNG

Diese Handbuchseite gibt einen Überblick ĂŒber verschiedene Zeichensatzstandards und wie sie unter Linux verwandt wurden, bevor Unicode allgegenwĂ€rtig wurde. Einige dieser Informationen können fĂŒr Benutzer, die noch auf Altsystemen und mit alten Dokumenten arbeiten, nĂŒtzlich sein.

Es werden Standards wie ASCII, GB 2312, ISO/IEC 8859, JIS, KOI8-R, KS und Unicode diskutiert.

Der primÀre Fokus liegt auf ZeichensÀtzen, die tatsÀchlich durch lokale ZeichensÀtze verwandt wurden, nicht die Unzahl anderer, die auf anderen Systemen gefunden werden können.

ASCII

ASCII (American Standard Code For Information Interchange) ist der ursprĂŒngliche 7-bit-Zeichensatz, ursprĂŒnglich fĂŒr amerikanisches Englisch entwickelt. Auch als US-ASCII bekannt. Er wird derzeit durch die Norm ISO/IEC 646:1991-12 IRV (Internationale Referenzversion) beschrieben.

Es bildeten sich verschiedene ASCII-Varianten heraus, die das Dollarzeichen durch andere WĂ€hrungszeichen ersetzten und die Zeichensatzzeichen mit alphabetischen Zeichen jenseits des englischen ersetzten, um Deutsch, Französisch, Spanisch und andere in 7-bit darzustellen. Alle sind veraltet; Glibc unterstĂŒtzt keine Locales, deren ZeichensĂ€tze nicht eine wirkliche Obermenge von ASCII sind.

Da Unicode bei der Verwendung von UTF-8 ASCII-kompatibel ist, werden reine ASCII-Dateien weiterhin auf modernen UTF-8-verwendenden Systemen korrekt dargestellt.

ISO/IEC 8859

ISO/IEC 8859 ist eine Serie von 15 8-bit-ZeichensĂ€tzen, bei allen denen ASCII in ihrer niedrigen (7-bit-)HĂ€lfte, unsichtbare Steuerzeichen in Positionen 128 bis 159 und 96 Graphiken fester Breite in Positionen 160
255 enthalten sind.

Von diesen ist ISO/IEC 8859-1 (»Lateinisches Alphabet Nr. 1« / Latin-1) der Wichtigste. Es war breit akzeptiert und wurde von verschiedenen Systemen unterstĂŒtzt und wird allmĂ€hlich durch Unicode ersetzt. Die Zeichen aus ISO/IEC 8859-1 sind auch die ersten 256 Zeichen von Unicode.

Konsole-UnterstĂŒtzung fĂŒr andere ISO/IEC-8859-ZeichensĂ€tze ist unter Linux mittels Hilfswerkzeugen im Anwendungsraum (wie setfont (8)) möglich, die die Tastaturanbindung und die EGA-Graphiktabelle Ă€ndern und eine »Benutzer-Abbildung« der Schrifttabelle im Konsolentreiber einsetzen.

Eine kurze Beschreibung jedes Zeichensatzes:
ISO/IEC 8859-1 (Latin-1)

Latin-1 deckt die meisten Sprachen wie Albanisch, Baskisch, DĂ€nisch, Englisch, FĂ€röisch, Galizisch, IslĂ€ndisch, Irisch, Italienisch, Norwegisch, Portugiesisch, Spanisch und Schwedisch ab. Das Fehlen der niederlĂ€ndischen Ligaturen ÄČ/Äł, des französischen Ɠ und der „deutschen“ AnfĂŒhrungszeichen wurde als tolerierbar betrachtet.

ISO/IEC 8859-2 (Latin-2)

Latin-2 unterstĂŒtzt viele zentral- und osteuropĂ€ische Sprachen mit lateinischer Schrift wie Bosnisch, Kroatisch, Tschechisch, Deutsch, Ungarisch, Polnisch, Slowakisch und Slowenisch. Das Ersetzen der rumĂ€nischen ș/ț durch ß/ĆŁ wurde als tolerierbar betrachtet.

ISO/IEC 8859-3 (Latin-3)

Latin-3 wurde zur Abdeckung von Esperanto, Maltesisch und TĂŒrkisch entwickelt, aber ISO/IEC 8859-9 löste es fĂŒr TĂŒrkisch spĂ€ter ab.

ISO/IEC 8859-4 (Latin-4)

Latin-4 fĂŒhrte Buchstaben fĂŒr nordeuropĂ€ische Sprachen wie Estnisch, Lettisch und Litauisch ein, aber ISO/IEC 8859-10 und ISO/IEC 8859-13 lösten es ab.

ISO/IEC 8859-5

Kyrilische Buchstaben, die Bulgarisch, Belorussisch, Mazedonisch, Russisch, Serbisch und (fast vollstĂ€ndig) Ukrainisch unterstĂŒtzen. Er wurde nie breit genutzt, siehe die nachfolgende Diskussion von KOI8-R/KOI8-U.

ISO/IEC 8859-6

Wurde fĂŒr arabisch erstellt. ISO/IEC 8859-6 ist eine Bildzeichentabelle mit fester SchriftgrĂ¶ĂŸe separater Buchstabenformen, aber eine korrekte Darstellungseinheit sollte sie unter Verwendung der korrekten Anfangs-, Mittel- und Endformen kombinieren.

ISO/IEC 8859-7

Wurde 1987 fĂŒr modernes Griechisch erstellt und 2003 aktualisiert.

ISO/IEC 8859-8

UnterstĂŒtzt modernes HebrĂ€isch ohne Vokalisation (Satzzeichen). Vokalisation und vollstĂ€ndiges biblisches HebrĂ€isch waren außerhalb des Anwendungsbereichs dieses Zeichensatzes.

ISO/IEC 8859-9 (Latin-5)

Dies ist eine Variante von Latin-1, die islĂ€ndische Buchstaben durch tĂŒrkische ersetzt.

ISO/IEC 8859-10 (Latin-6)

Latin-6 fĂŒgte die Inuit- (grönlĂ€ndischen) und die Sami- (lappischen) Buchstaben hinzu, die Latin-4 fehlten, um den gesamten nordischen Raum abzudecken.

ISO/IEC 8859-11

UnterstĂŒtzt das Thai-Alphabet und ist fast mit dem Standard TIS-620 identisch.

ISO/IEC 8859-12

Dieser Zeichensatz existiert nicht.

ISO/IEC 8859-13 (Latin-7)

UnterstĂŒtzt die Sprachen des Baltikums; insbesondere enthĂ€lt es lettische Zeichen, die nicht Teil von Latin-4 sind.

ISO/IEC 8859-14 (Latin-8)

Dies ist der keltische Zeichensatz, der altes Irisch, die keltische Mundart der Bewohner der Insel Man, GĂ€lisch, Walisisch, Kornisch und Bretonisch abdeckt.

ISO/IEC 8859-15 (Latin-9)

Latin-9 ist dem breit benutzten Latin-1 Àhnlich, ersetzt aber einige weniger hÀufige Symbole durch das Euro-Zeichen sowie französische und finnische Zeichen, die in Latin-1 fehlten.

ISO/IEC 8859-16 (Latin-10)

Dieser Zeichensatz deckt viele sĂŒdosteuropĂ€ische Sprachen ab, insbesondere unterstĂŒtzt es RumĂ€nisch vollstĂ€ndiger als Latin-2.

KOI8-R / KOI8-U

KOI8-R ist ein nicht-ISO-Zeichensatz, der in Russland vor Unicode beliebt war. Die untere HĂ€lfte ist ASCII; die obere HĂ€lfte ist der kyrillische Zeichensatz, etwas besser als ISO/IEC 8859-5 gestaltet. KOI8-U basiert auf KOI8-R und hat bessere UnterstĂŒtzung fĂŒr ukrainisch. Keiner dieser SĂ€tze ist ISO/IEC-2022-kompatibel, anders als die ISO/IEC-8859-Serie.

Konsole-UnterstĂŒtzung fĂŒr KOI8-R ist unter Linux mittels Hilfswerkzeugen im Anwendungsraum verfĂŒgbar, die die Tastaturanbindung und die EGA-Graphiktabelle Ă€ndern und eine »Benutzer-Abbildung« der Schrifttabelle im Konsolentreiber einsetzen.

GB 2312

GB 2312 ist ein nationaler Zeichensatz von Kernland-China, der zum Ausdruck von vereinfachtem Chinesisch verwandt wird. Genau wie bei JIS X 0208 werden Zeichen in eine 94x94 Zwei-byte-Matrix zur Konstruktion von EUC-CN abgebildet. EUC-CN ist die wichtigste Kodierung fĂŒr Linux und enthĂ€lt ASCII und GB 2312. Beachten Sie, dass EUC-CN oft GB, GB 2312 oder CN-GB genannt wird.

Big5

Big5 war ein in Taiwan beliebter Zeichensatz, um traditionelles Chinesisch auszudrĂŒcken (Big5 ist sowohl ein Zeichensatz als auch eine Kodierung). Es ist eine Obermenge von ASCII. Nicht-ASCII-Zeichen werden in zwei bytes dargestellt. Bytes 0xa1
0xfe werden als fĂŒhrende Bytes fĂŒr Zwei-byte-Zeichen verwandt. Big5 und seine Erweiterungen wurde breit in Taiwan und Hong Kong verwandt. Es ist nicht ISO/IEC-2022-konform.

JIS X 0208

JIS X 0208 ist ein japanischer nationaler Standardzeichensatz. Obwohl es noch einige weitere japanische nationale StandardzeichensĂ€tze gibt (wie JIS X 0201, JIS X 0212 und JIS X 0213) ist dies der wichtigste. Zeichen werden in eine 94x94-Zwei-byte-Matrix abgebildet, wobei jedes Byte im Bereich 0x21
0x7e liegt. Beachten Sie, dass JIS X 0208 ein Zeichensatz und keine Kodierung ist. Das bedeutet, das JIS X 0208 nicht selbst zum Wiedergeben von Textdaten verwandt wird. JIS X 0208 wird als Komponente zur Konstruktion von Kodierungen wie EUC-JP, Shift_JIS und ISO/IEC-2022-JP verwandt. EUC-JP ist die wichtigste Kodierung fĂŒr Linux und enthĂ€lt ASCII und JIS X 0208. In EUC-JP werden die Zeichen aus JIS X 0208 in zwei bytes ausgedrĂŒckt, wobei jedes in dem Code JIS X 0208 plus 0x80 ist.

KS X 1001

KS X 1001 ist ein koreanischer nationale Standardzeichensatz. Wie bei JIS X 0208 werden Zeichen in eine 94x94-Zwei-byte-Matrix abgebildet. KS X 1001 wird wie JIS X 0208 verwandt, als Komponente, um Kodierungen wie EUC-KR, Johab und ISO/IEC-2022-KR zu konstruieren. EUC-KR ist die wichtigste Kodierung fĂŒr Linux und enthĂ€lt ASCII und KS X 1001. KS C 5601 ist ein Ă€lterer Name fĂŒr KS X 1001.

ISO/IEC 2022 und ISO/IEC 4873

Die Normen ISO/IEC 2022 und ISO/IEC 4873 beschreiben ein Schrift-Steuermodell, basierend auf VT100-Vorgehen. Dieses Modell wird (teilweise) vom Linux-Kernel und xterm (1) unterstĂŒtzt. Mehrere ISO/IEC-2022-basierte ZeichensĂ€tze wurden definiert, insbesondere fĂŒr Japanisch.

Es gibt 4 graphische ZeichensĂ€tze, genannt G0, G1, G2 und G3, und einer von ihnen ist der aktuelle Zeichensatz fĂŒr Codes mit dem hohen Bit Null (anfĂ€nglich G0), und einer von ihnen ist der aktuelle Zeichensatz fĂŒr Codes mit dem hohen Bit eins (anfĂ€nglich G1). Jeder graphischer Zeichensatz hat 94 oder 96 Zeichen und ist im wesentlichen ein 7-bit-Zeichensatz. Er verwendet entweder die Codes 040
0177 (041
0176) oder 0240
0377 (0241
0376). G0 hat immer die GrĂ¶ĂŸe 94 und verwendet die Codes 041
0176.

Das Umschalten zwischen den ZeichensĂ€tzen erfolgt ĂŒber Umschaltfunktionen ^N (SO oder LS1), ^O (SI oder LS0), ESC n (LS2), ESC o (LS3), ESC N (SS2), ESC O (SS3), ESC ~ (LS1R), ESC } (LS2R), ESC | (LS3R). Die Funktion LS n macht Zeichensatz G n zum aktuellen fĂŒr Codes mit dem hohen Bit null. Die Funktion LS n R macht Zeichensatz G n zum aktuellen fĂŒr Codes mit dem hohen Bit eins. Die Funktion SS n macht Zeichensatz G n ( n =2 or 3) nur fĂŒr das nĂ€chste Zeichen zum aktuellen (unabhĂ€ngig von dem Wert seinen Bits hoher Ordnung).

Ein 94-Zeichen Satz wird durch eine Escape-Sequenz ESC ( xx (fĂŒr G0), ESC ) xx (fĂŒr G1), ESC * xx (fĂŒr G2), ESC + xx (fĂŒr G3) bezeichnet, wobei xx ein im internationalen Register von kodierten ZeichensĂ€tzen in ISO/IEC 2375 gefundenes Symbol oder ein Paar von Symbolen ist. Beispielsweise wĂ€hlt ESC ( @ den ISO/IEC-646-Zeichensatz als G0, ESC ( A wĂ€hlt den UK-Standardzeichensatz (mit Pfundzeichen statt des Nummernzeichens), ESC ( B wĂ€hlt ASCII (mit Dollarzeichen anstelle des WĂ€hrungszeichens), ESC ( M wĂ€hlt einen Zeichensatz fĂŒr afrikanische Sprachen ESC ( ! A wĂ€hlt den kubanischen Zeichensatz und so weiter.

Ein 96-Zeichen Satz wird durch eine Escape-Sequenz xx (for G1), ESC . xx (fĂŒr G2) oder ESC / xx (fĂŒr G3) als G n -Zeichensatz bezeichnet. Beispielsweise wĂ€hlt ESC - G das hebrĂ€ische Alphabet als G1.

Ein Multibyte-Zeichensatz wird durch eine Escape-Sequenz ESC $ xx oder ESC $ ( xx (fĂŒr G0), ESC $ ) xx (fĂŒr G1), ESC $ * xx (fĂŒr G2), ESC $ + xx (fĂŒr G3) als G n -Zeichensatz bezeichnet. Beispielsweise wĂ€hlt ESC $ ( C den koreanischen Zeichensatz fĂŒr G0. Der als ESC $ B ausgewĂ€hlte japanische Zeichensatz hat eine neuere Version, die durch ESC & @ ESC $ B ausgewĂ€hlt wird.

ISO/IEC 4873 schreibt eine engere Verwendung von ZeichensĂ€tzen vor, wobei G0 fest (immer ASCII) ist, so dass G1, G2 und G3 nur fĂŒr Codes mit gesetztem Bit hoher Ordnung aufgerufen werden können. Insbesondere werden ^N und ^O nicht mehr verwandt, ESC ( xx kann nur mit xx=B verwandt werden und ESC ) xx, ESC * xx, ESC + xx sind Ă€quivalent zu ESC - xx, ESC . xx bzw. ESC / xx.

TIS-620

TIS-620 ist ein thailÀndischer nationaler Standardzeichensatz und eine Obermenge von ASCII. In der gleichen Art wie bei der ISO/IEC-8859-Serie werden thailÀndische Zeichen in 0xa1
0xfe abgebildet.

Unicode

Unicode (ISO/IEC 10646) ist eine Norm, die auf die eindeutige Darstellung jedes Zeichen in jeder menschlichen Sprache abzielt. Unicodes Struktur erlaubt 20,1 bits zur Kodierung jedes Zeichens. Da die meisten Computer keine 20,1-Ganzzahlen enthalten, wird Unicode normalerweise intern als 32-bit-Ganzzahl und entweder einer Reihe von 16-bit-Ganzzahlen (UTF-16) (wofĂŒr nur zwei 16-bit-Ganzzahlen bei der Kodierung bestimmter seltener Zeichen benötigt werden) oder einer Reihe von 8-bit-Bytes (UTF-8) kodiert.

Linux stellt Unicode mittels des 8-bit-Unicode-Umwandlungsformats (UTF-8) dar. UTF-8 ist eine Unicode-Kodierung variabler LĂ€nge. Sie verwendet 1 byte, um 7 bits zu kodieren, 2 byte fĂŒr 11 bits, 3 byte fĂŒr 16 bit, 4 byte fĂŒr 21 bit, 5 byte fĂŒr 26 bit, 6 byte fĂŒr 31 bit.

Im Folgenden steht 0,1,x fĂŒr Null, Eins und ein beliebiges Bit. Ein Byte 0xxxxxxx steht fĂŒr Unicode 00000000 0xxxxxxx, was das gleiche Symbol wie ASCII 0xxxxxxx kodiert. Daher gelangt ASCII unverĂ€ndert in UTF-8 und daher bemerken Benutzer, die nur ASCII verwenden, keine Änderung; weder im Code noch in der DateigrĂ¶ĂŸe.

Ein Byte 110xxxxx ist der Anfang eines 2-byte-Codes und 110xxxxx 10yyyyyy wird in 00000xxx xxyyyyyy zusammengesetzt. Ein Byte 1110xxxx ist der Anfang eines 3-byte-Codes und 1110xxxx 10yyyyyy 10zzzzzz wird in xxxxyyyy yyzzzzzz zusammengesetzt. (Wird UTF-8 zur Kodierung der 31-bit ISO/IEC 10646 verwandt, dann geht diese Reihe bis zum 6-byte-Code).

FĂŒr die meisten Texte im ISO/IEC 8859-Zeichensatz bedeutet dies, dass die Zeichen außerhalb von ASCII jetzt in zwei bytes kodiert werden. Dadurch werden normale Textdateien nur um ein bis zwei Prozent vergrĂ¶ĂŸert. FĂŒr russische und griechische Texte werden die Textdateien um 100% vergrĂ¶ĂŸert, da der Text in diesen Sprachen grĂ¶ĂŸtenteils außerhalb von ASCII ist. FĂŒr japanische Benutzer bedeutet dies, dass die derzeit verbreiteten 16-bit-Codes drei bytes belegen werden. Es gibt zwar algorithmische Umwandlungen aus einigen ZeichensĂ€tzen (insbesondere ISO/IEC 8859-1) in Unicode, aber die allgemeine Umwandlung benötigt den Einsatz von Umwandlungstabellen, die fĂŒr 16-bit-Codes recht groß werden können.

Beachten Sie, dass UTF-8 selbstsynchronisierend ist: 10xxxxxx ist der Rest und jedes andere Byte ist der Kopf eines Codes. Beachten Sie, dass ASCII-Bytes in einem UTF-8-Datenstrom nur als sie selbst vorkommen. Insbesondere gibt es keine eingebetteten Nullbytes (»\0«) oder »/«, die Teil eines grĂ¶ĂŸeren Codes bilden.

Da ASCII und insbesondere Nullbytes und »/« unverĂ€ndert sind, bemerkt der Kernel nicht, dass UTF-8 verwandt wird. Ihm ist es total egal, wofĂŒr die Bytes stehen, mit denen er umgeht.

Die Darstellung von Unicode-Datenströmen erfolgt normalerweise ĂŒber »Teilschriftsatz«-Tabellen, die eine Teilmenge von Unicode auf Schriftzeichen abbilden. Intern verwendet der Kernel Unicode, um den im Video-RAM geladenen Unterschriftsatz zu beschreiben. Das bedeutet, dass in der Linux-Konsole im UTF-8-Modus ZeichensĂ€tze mit 512 verschiedenen Symbolen verwandt werden können. Das ist fĂŒr Japanisch, Chinesisch und Koreanisch nicht genug, aber es reicht fĂŒr die meisten anderen Zwecke.

SIEHE AUCH

iconv (1), ascii (7), iso_8859-1 (7), unicode (7), utf-8 (7)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> 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 die Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org .