Provided by: manpages-de_4.27.0-1_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/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  IJ/ij,  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 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/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 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/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.

Linux man-pages 6.9.1                             15. Juni 2024                                      charsets(7)