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⟩.