Provided by: manpages-de_4.21.0-2_all bug

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 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 8859
       ISO 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 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 8859-1 sind auch die ersten 256 Zeichen von Unicode.

       Konsole-Unterstützung  für  andere  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:

       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  IJ/ij,  des  französischen  œ  und der altertümlichen
              „deutschen“ Anführungszeichen wurde als tolerierbar betrachtet.

       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.

       8859-3 (Latin-3)
              Latin-3 wurde zur Abdeckung von Esperanto, Maltesisch und Türkisch entwickelt, aber  8859-9  löste
              es für Türkisch später ab.

       8859-4 (Latin-4)
              Latin-4  führte  Buchstaben für nordeuropäische Sprachen wie Estnisch, Lettisch und Litauisch ein,
              aber 8859-10 und 8859-13 lösten es ab.

       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.

       8859-6 Wurde für arabisch erstellt. 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.

       8859-7 Wurde 1987 für modernes Griechisch erstellt und 2003 aktualisiert.

       8859-8 Unterstützt  modernes  Hebräisch  ohne  Vokalisation (Satzzeichen). Vokalisation und vollständiges
              biblisches Hebräisch waren außerhalb des Anwendungsbereichs dieses Zeichensatzes.

       8859-9 (Latin-5)
              Dies ist eine Variante von Latin-1, die isländische Buchstaben durch türkische ersetzt.

       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.

       8859-11
              Unterstützt das Thai-Alphabet und ist fast mit dem Standard TIS-620 identisch.

       8859-12
              Dieser Zeichensatz existiert nicht.

       8859-13 (Latin-7)
              Unterstützt die Sprachen des Baltikums; insbesondere enthält es lettische Zeichen, die nicht  Teil
              von Latin-4 sind.

       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.

       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.

       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 8859-5 gestaltet. KOI8-U
       basiert  auf  KOI8-R  und  hat  bessere  Unterstützung  für   ukrainisch.   Keiner   dieser   Sätze   ist
       ISO-2022-kompatibel, anders als die ISO-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-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-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-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 2022 und ISO 4873
       Die  Normen  ISO/IEC  2022  und  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 LSn macht Zeichensatz Gn zum aktuellen für Codes mit dem hohen Bit null. Die Funktion LSnR macht
       Zeichensatz Gn zum aktuellen für Codes mit dem hohen Bit eins. Die Funktion SSn macht Zeichensatz Gn (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-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 Gn-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 Gn-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-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 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.

Linux man-pages 6.03                             5. Februar 2023                                     charsets(7)