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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.