Zeichenkodierung

Stempelband mit dem Wort "wikipedia" codiert in ASCII. Das Vorhandensein und Fehlen eines Lochs repräsentiert 1 bzw. 0; Zum Beispiel wird "W" als "1010111" codiert.

Zeichenkodierung ist der Prozess der Zuweisung von Zahlen zu grafisch Figuren, besonders die geschriebenen Charaktere von menschliche Sprache, so gelagert, übertragen, und transformiert Verwendung Digital Computers.[1] Die numerischen Werte, aus denen eine Charaktercodierung besteht, werden als "bezeichnet"Codepunkte"Und umfassen gemeinsam einen" Coderaum ", a"Codepage", oder ein "Charakterkarte".

Frühe Zeichencodes, die mit den optischen oder elektrischen Zeichen verbunden sind Telegraph konnte nur eine Untergruppe der in verwendeten Zeichen darstellen Geschriebene Sprachen, manchmal beschränkt auf Großbuchstaben, Ziffern und einige Interpunktion nur. Die niedrigen Kosten für die digitale Darstellung von Daten in modernen Computersystemen ermöglichen eine ausgefeiltere Zeichencodes (wie z. Unicode) die die meisten in vielen geschriebenen Sprachen verwendeten Zeichen repräsentieren. Die Charaktercodierung unter Verwendung international anerkannter Standards ermöglicht weltweit den Wechsel von Text in elektronischer Form.

Geschichte

Die Geschichte der Charaktercodes zeigt den sich entwickelnden Bedarf an maschinellen vermittelten charakterbasierten symbolischen Informationen über einen Abstand unter Verwendung von einst elektrischen Mitteln. Die frühesten Codes basierten auf manuellen und handgeschriebenen Codierungs- und Ziffersystemen, wie z. Specks Chiffre, Blindenschrift, Internationale maritime Signalflaggenund die 4-stellige Kodierung chinesischer Charaktere für a Chinesischer Telegraphencode (Hans Schjellerup1869). Mit der Einführung elektrischer und elektromechanischer Techniken wurden diese frühesten Codes an die neuen Fähigkeiten und Einschränkungen der frühen Maschinen angepasst. Der früheste bekannte elektrisch übertragene Zeichencode, Morse-CodeIn den 1840er Jahren wurden ein System mit vier "Symbolen" (kurzes Signal, langes Signal, kurzer Platz, langer Platz) verwendet, um Codes mit variabler Länge zu erzeugen. Obwohl eine kommerzielle Verwendung von Morsecode über Maschinen erfolgte, wurde er häufig als manueller Code verwendet, der von Hand auf a generiert wurde Telegraphenschlüssel und entschlüsselt nach Gehör und bestehen in Amateurradio und Luftfahrt verwenden. Die meisten Codes sind mit festen Länge pro Charakter oder Sequenzen mit variabler Länge von Codes mit fester Länge (z. Unicode).[2]

Häufige Beispiele für Charaktercodierungssysteme umfassen Morse-Code, das Baudot -Code, der amerikanische Standardcode für Informationsaustausch (ASCII) und Unicode. UnicodeEin gut definiertes und erweiterbares Codierungssystem hat die meisten früheren Charaktercodierungen ersetzt, aber der Weg der Codeentwicklung zu diesem Zeitpunkt ist ziemlich bekannt.

Das Baudot -Code, eine Fünf-Bit-Codierung, wurde von erstellt von Émile Baudot 1870, 1874 patentiert, 1901 von Donald Murray geändert und 1930 von CCITT als internationales Telegraph Alphabet Nr. 2 (ITA2) standardisiert. Der Name "Baudot" wurde fälschlicherweise auf ITA2 und seine vielen Varianten angewendet. ITA2 litt unter vielen Mängel und wurde oft von vielen Gerätenherstellern "verbessert", was manchmal Kompatibilitätsprobleme verursachte. 1959 definierte das US -Militär seine Fieldata Code, ein Sechs oder Sieben-Bit-Code, der vom US Army Signal Corps eingeführt wurde. Während Fieldata viele der damals modernen Probleme (z. B. Buchstaben- und Zifferncodes, die für die Maschinenkonsum angeordnet waren), blieben Fieldata seine Ziele nicht und war von kurzer Dauer. 1963 wurde der erste ASCII-Code (American Standard Code for Information Interchange) vom ASCII-Komitee (das mindestens ein Mitglied des Fieldata-Komitees, W. F. Leubbert, veröffentlicht) veröffentlicht, der sich mit den meisten Mängel von Fieldata befasste mit einem einfacheren Code. Viele der Veränderungen waren subtil, wie z. B. satbare Zeichensätze in bestimmten numerischen Bereichen. ASCII63 war ein Erfolg, der von der Industrie weit verbreitet war, und mit der Follow-up-Ausgabe des ASCII-Codes von 1967 (in dem die Buchstaben mit niedrigerem Fall hinzugefügt wurden und einige "Kontrollcode" -Probleme festgelegt wurden) wurde ASCII67 ziemlich weit verbreitet. Die amerikanische Natur von ASCII67 wurde im Europäer etwas angesprochen ECMA-6 Standard.[3]

Hollerith 80-Spitz-Punschkarte mit Ebcdic-Charakter-Set

Herman Hollerith Erfunden Sie im späten 19. Jahrhundert die Coding Punch -Kartendaten zur Analyse der Volkszählungsdaten. Zunächst stellte jede Lochposition ein anderes Datenelement dar, aber später wurden numerische Informationen durch die Nummerierung der unteren Zeilen von 0 bis 9 codiert, wobei ein Schlag in einer Spalte ihre Zeilenzahl darstellte. Spätere alphabetische Daten wurden kodiert, indem mehr als ein Schlag pro Spalte zulässig war. Elektromechanisch Tabelliermaschinen Date intern durch den Zeitpunkt der Impulse in Bezug auf die Bewegung der Karten durch die Maschine dargestellt. Wann IBM ging zur elektronischen Verarbeitung, beginnend mit dem IBM 603 Elektronischer Multiplikator verwendete eine Vielzahl von binären Codierungsschemata, die an den Punschkartencode gebunden waren.

IBM's Binär codierte Dezimalzahl (BCD) war ein Sechs-Bit-Codierungsschema, das IBM bereits 1953 in seinem verwendete 702[4] und 704 Computer und später 7000 Serie und 1400 Seriesowie in zugehörigen Peripheriegeräten. Da der dann verwendete geschlagene Kartencode nur Ziffern, englische Buchstaben und einige Sonderzeichen zulässig war, waren sechs Bits ausreichend. BCD erweiterte die vorhandene einfache Vier-Bit-numerische Codierung um alphabetische und Sonderzeichen, die es leicht zu Punch-Card-Codierung zuordnen, die bereits weit verbreitet waren. IBMS -Codes wurden hauptsächlich mit IBM -Geräten verwendet. Andere Computeranbieter der Ära hatten ihre eigenen Charaktercodes, oft sechs Bit, hatten jedoch normalerweise die Möglichkeit, Bänder zu lesen, die auf IBM-Geräten hergestellt wurden. BCD war der Vorläufer von IBM's Erweiterter binär codierter Dezimalstauschcode (Normalerweise als Ebcdic abgekürzt), ein acht-Bit-Codierungsschema, das 1963 für die entwickelt wurde IBM System/360 Das enthielt einen größeren Charakter -Set, einschließlich unterer Fallbuchstaben.

Die Einschränkungen solcher Sätze wurden bald offensichtlich,[denen?] und eine Reihe von ad hoc Es wurden Methoden entwickelt, um sie zu erweitern. Die Notwendigkeit, mehr zu unterstützen Schreibsysteme für verschiedene Sprachen, einschließlich der CJK Familie ostasiatischer Skripte, erforderte Unterstützung für eine weitaus größere Anzahl von Zeichen und forderte eher einen systematischen Ansatz für die Charaktercodierung als für die vorherige ad hoc Ansätze.

Als Forscher in den 1980er Jahren versuchten, universell austauschbare Charakter -Kodierungen zu entwickeln, sahen es in den 1980er Jahren dem Dilemma aus Von dem lateinischen Alphabet (das immer noch die Mehrheit der Computerbenutzer bestand) waren diese zusätzlichen Bits eine kolossale Verschwendung von damals Scarce- und teuren Rechenressourcen (wie sie für solche Benutzer immer aufgenommen würden). 1985 der durchschnittliche Benutzer des Personalcomputers Festplatte Könnte nur etwa 10 Megabyte aufbewahren, und es kostete ungefähr 250 US -Dollar auf dem Großhandelsmarkt (und viel höher, wenn sie im Einzelhandel getrennt gekauft werden).[5] Daher war es damals sehr wichtig, jedes bisschen zu zählen.

Die Kompromisslösung, die schließlich zu Unicode gefunden und entwickelt wurde, bestand darin, die Annahme (aus dem Telegraphencodes zurückzuführen) zu brechen, dass jedes Zeichen immer direkt einer bestimmten Abfolge von Bits entsprechen sollte. Stattdessen würden Zeichen zuerst einer universellen Zwischendarstellung in Form abstrakter Zahlen zugeordnet Codepunkte. Codepunkte würden dann auf verschiedene Weise und mit verschiedenen Standardzahlen von Bits pro Zeichen (Codeeinheiten) je nach Kontext dargestellt. Um Codepunkte höher als die Länge der Codeeinheit zu codieren, wie z. Codierungen der variablen Breite Wenn eine Fluchtsequenz signalisiert, dass nachfolgende Bits als höherer Codepunkt analysiert werden sollten.

Terminologie

Terminologie im Zusammenhang mit der Charaktercodierung
KB Dubeolsik for Old Hangul (NG3).svg
  • A Charakter ist eine minimale Texteinheit mit semantischem Wert.
  • A Zeichensatz ist eine Sammlung von Zeichen, die möglicherweise von mehreren Sprachen verwendet werden. Beispiel: Das lateinische Charakter -Set wird von englischen und den meisten europäischen Sprachen verwendet, obwohl das griechische Zeichensatz nur von der griechischen Sprache verwendet wird.
  • A codierter Zeichensatz ist ein Zeichensatz, bei dem jedes Zeichen einer eindeutigen Zahl entspricht.
  • A Codepunkt eines codierten Zeichensatzes ist ein beliebiger Wert im Zeichensatz oder Coderaum.
  • A Coderaum ist eine Reihe von Ganzzahlen, deren Werte Codepunkte sind
  • A Codeeinheit ist die "Wortgröße" des Zeichenkodierungsschemas wie 7-Bit, 8-Bit, 16-Bit. In einigen Schemata werden einige Zeichen unter Verwendung mehrerer Codeeinheiten codiert, was zu einer Codierung der variablen Länge führt. Eine Codeeinheit wird als als bezeichnet Codewert in einigen Dokumenten.[6]
Charakterrepertoire (das abstrakte Satz von Zeichen)

Das Charakterrepertoire ist eine abstrakte Reihe von mehr als einer Million Charakteren, die in einer Vielzahl von Drehbüchern enthalten sind, darunter lateinisch, kyrillisch, chinesisch, koreanisch, japanisch, hebräisch und aramäisch.

Andere Symbole wie musikalische Notation sind ebenfalls im Charakterrepertoire enthalten. Sowohl der Unicode als auch der Unicode und GB 18030 Standards haben ein Charakterrepertoire. Da neue Zeichen zu einem Standard hinzugefügt werden, fügt der andere Standard diese Zeichen hinzu, um die Parität aufrechtzuerhalten.

Die Größe der Codeeinheit entspricht der Bitmessung für die jeweilige Codierung:

  • Eine Codeeinheit in US-Ascii besteht aus 7 Bit;
  • Eine Codeeinheit in UTF-8, Ebcdic und GB 18030 besteht aus 8 Bit;
  • Eine Codeeinheit in UTF-16 besteht aus 16 Bits;
  • Eine Codeeinheit in UTF-32 besteht aus 32 Bit.

Beispiel einer Codeeinheit: Betrachten Sie a Saite der Buchstaben "ABC" gefolgt von U+10400 Deseret Großbuchstabe lange ich (vertreten mit 1 char32_t, 2 char16_t oder 4 char8_t). Diese Zeichenfolge enthält:

  • vier Zeichen;
  • vier Codepunkte
  • entweder:
    Vier Codeeinheiten in UTF-32 (00000061, 00000062, 00000063, 00010400)
    Fünf Codeeinheiten in UTF-16 (0061, 0062, 0063, d801, dc00) oder
    Sieben Codeeinheiten in UTF-8 (61, 62, 63, F0, 90, 90, 80).

Die Konvention, die sich auf ein Zeichen in Unicode bezieht, besteht darin, mit 'U+' zu beginnen, gefolgt vom CodePoint -Wert in Hexadezimal. Der Bereich der gültigen Codepunkte für den Unicode -Standard ist U+0000 bis U+10ffff, einschließlich, geteilt in 17 Flugzeuge, identifiziert durch die Nummern 0 bis 16. Zeichen im Bereich U+0000 bis U+FFFF sind in Ebene 0, genannt die Grundlegende mehrsprachige Ebene (BMP). Diese Ebene enthält die am häufigsten verwendeten Zeichen. Zeichen im Bereich U+10000 bis U+10ffff in den anderen Ebenen werden aufgerufen ergänzende Zeichen.

Die folgende Tabelle zeigt Beispiele für Codepunktwerte:

Charakter Unicode -Codepunkt Glyphe
Latein a U+0041 Α
Lateinisch scharfe s U+00DF ß
Han für Ost U+6771
Et-Zeichen U+0026 &
Umgekehrter Ausrufezeichen U+00A1 ¡
Abschnittszeichen U+00A7 §

Ein Codepunkt wird durch eine Abfolge von Codeeinheiten dargestellt. Die Zuordnung wird durch die Codierung definiert. Somit hängt die Anzahl der Codeeinheiten, die zur Darstellung eines Codepunkts erforderlich sind, von der Codierung ab:

  • UTF-8: Die Codepunkte müssen einer Sequenz von einem, zwei, drei oder vier Codeeinheiten zugeordnet werden.
  • UTF-16: Codeeinheiten sind doppelt so lang wie 8-Bit-Code-Einheiten. Daher wird jeder Codepunkt mit einem Skalarwert von weniger als U+10000 mit einer einzelnen Codeeinheit codiert. Codepunkte mit einem Wert U+10000 oder höher erfordern jeweils zwei Codeeinheiten. Diese Paare von Codeeinheiten haben einen eindeutigen Begriff in UTF-16: "Unicode -Ersatzpaare".
  • UTF-32: Die 32-Bit-Codeeinheit ist groß genug, dass jeder Codepunkt als einzelne Codeeinheit dargestellt wird.
  • GB 18030: Aufgrund der kleinen Codeeinheiten sind mehrere Code -Einheiten pro Codepunkt üblich. Codepunkte werden auf ein, zwei oder vier Codeeinheiten abgebildet.[7]

Unicode -Codierungsmodell

Unicode und sein paralleler Standard, die ISO/IEC 10646 Universeller Charakter -Setzusammen bilden eine moderne, einheitliche Charakter -Codierung. Anstatt Zeichen direkt auf Oktetten zuzuordnen (Bytes), sie definieren separat, welche Zeichen verfügbar sind, entsprechende natürliche Zahlen (Codepunkte), wie diese Zahlen als eine Reihe von natürlichen Zahlen fester Größe (Codeeinheiten) codiert werden und schließlich, wie diese Einheiten als Oktettenstrom codiert werden. Der Zweck dieser Zerlegung ist es, eine universelle Reihe von Zeichen zu etablieren, die auf verschiedene Weise codiert werden können.[8] Um dieses Modell korrekt zu beschreiben, sind genauere Begriffe erforderlich als "Zeichensatz" und "Charaktercodierung". Die im modernen Modell verwendeten Begriffe folgen:[8]

A Charakterrepertoire ist der vollständige Satz abstrakter Zeichen, die ein System unterstützt. Das Repertoire kann geschlossen werden, d. H. Es sind keine Ergänzungen zulässig, ohne einen neuen Standard zu erstellen (wie es bei ASCII und den größten Teil der ISO-8859-Serie der Fall ist), oder es kann offen sein, was Ergänzungen ermöglicht (wie es bei Unicode und zu den Fall ist ein begrenztes Ausmaß der Windows -Code -Seiten). Die Charaktere in einem bestimmten Repertoire spiegeln Entscheidungen wider, die darüber getroffen wurden, wie Schreibsysteme in grundlegende Informationseinheiten unterteilt werden. Die grundlegenden Varianten der Latein, griechisch und kyrillisch Alphabete können in Buchstaben, Ziffern, Zeichensetzung und einige unterteilt werden spezielle Charaktere wie der Raum, der alle in einfachen linearen Sequenzen angeordnet werden kann, die in derselben Reihenfolge angezeigt werden, die sie gelesen werden. Aber selbst mit diesen Alphabeten, Diakritik Stellen Sie eine Komplikation dar: Sie können entweder als Teil eines einzelnen Zeichens angesehen werden, der einen Buchstaben und diakritisch (als vorkomponiertes Zeichen bezeichnet) oder als getrennte Zeichen enthält. Ersteres ermöglicht ein weitaus einfacheres Texthandlingssystem, aber letztere ermöglicht es, dass jeder Buchstaben/diakritische Kombination im Text verwendet wird. Ligaturen Stellen Sie ähnliche Probleme auf. Andere Schreibsysteme wie Arabisch und Hebräisch werden mit komplexeren Charakterrepertoires dargestellt, da es notwendig ist, Dinge wie bidirektionaler Text und Glyphen Das werden für verschiedene Situationen auf unterschiedliche Weise zusammengefügt.

A codierter Zeichensatz (CCS) ist a Funktion das bildet Charaktere auf Codepunkte (Jeder Codepunkt repräsentiert ein Zeichen). Zum Beispiel könnte in einem bestimmten Repertoire der Großbuchstaben "A" im lateinischen Alphabet durch den Codepunkt 65, das Zeichen "B" bis 66, dargestellt werden. Mehrere codierte Zeichensätze können dasselbe Repertoire teilen. zum Beispiel ISO/IEC 8859-1 und IBM -Code -Seiten 037 und 500 decken alle das gleiche Repertoire ab, zeichnen sie jedoch an verschiedene Codepunkte ab.

A Charakter -Codierungsform (CEF) ist die Zuordnung von Codepunkten an Codeeinheiten Erleichterung des Speichers in einem System, das Zahlen als Bitsequenzen mit fester Länge darstellt (d. H. Praktisch jedes Computersystem). Beispielsweise kann ein System, das numerische Informationen in 16-Bit-Einheiten speichert, in jeder Einheit nur direkt Codepunkte von 0 bis 65.535 darstellen, aber größere Codepunkte (z. B. 65.536 bis 1,4 Millionen) können durch die Verwendung mehrerer 16-Bit-Einheiten dargestellt werden. Diese Korrespondenz wird durch ein CEF definiert.

Als nächstes a Zeichenkodierschema (CES) ist die Zuordnung von Codeeinheiten zu einer Abfolge von Oktetten, um den Speicher in einem Oktett-basierten Dateisystem oder Übertragung über ein Oktettsnetzwerk zu erleichtern. Einfache Charakter -Codierungsschemata umfassen UTF-8, UTF-16BE, UTF-32BE, UTF-16LE oder UTF-32LE; zusammengesetzte Charakter -Codierungsschemata, wie z. UTF-16, UTF-32 und ISO/IEC 2022wechseln Sie zwischen mehreren einfachen Schemata mit a Byte -Bestellmarke oder Fluchtsequenzen; Komprimierungsschemata versuchen, die Anzahl der verwendeten Bytes pro Codeeinheit zu minimieren (z. B. Scsu, Bocu, und Punycode).

Obwohl UTF-32BE ist ein einfacheres CES, die meisten Systeme, die mit Unicode arbeiten UTF-8, welches ist rückwärtskompatibel Mit festen Breiten-ASCII- und Karten von Unicode-Codepunkten auf variable Breitensequenzen von Oktetten oder oder UTF-16BE, welches ist rückwärtskompatibel Mit Fixed-Width-UCS-2BE- und Karten zeigt Unicode-Code auf variable Breitensequenzen von 16-Bit-Wörtern. Sehen Vergleich von Unicode -Codierungen für eine detaillierte Diskussion.

Schließlich kann es eine geben Übergeordnetes Protokoll Dies liefert zusätzliche Informationen, um die bestimmte Variante von a auszuwählen Unicode Charakter, insbesondere wenn es regionale Varianten gibt, die in Unicode als das gleiche Zeichen „einheitlich“ wurden. Ein Beispiel ist das Xml Attribut XML: Lang.

Das Unicode -Modell verwendet den Begriff Charakterkarte für historische Systeme, die eine Abfolge von Zeichen direkt zu einer Abfolge von Bytes zuweisen und alle CCS-, CEF- und CES -Schichten abdecken.[8]

Zeichensätze, Zeichenkarten und Codeseiten

Historisch gesehen die Begriffe "Charaktercodierung", "Charakterkarte", "Charakter -Set" und "Codepage"waren synonym in Informatik, wie der gleiche Standard würde ein Repertoire an Zeichen angeben und wie sie in einen Stream von Codeeinheiten codiert werden sollten - normalerweise mit einem einzelnen Zeichen pro Codeeinheit. Aber jetzt haben die Begriffe verwandte, aber unterschiedliche Bedeutungen,[9] Aufgrund der Bemühungen durch Standards, präzise Terminologie beim Schreiben und Vereinigung vieler verschiedener Codierungssysteme zu verwenden.[8] Unabhängig davon werden die Begriffe immer noch synonym verwendet, mit Zeichensatz fast allgegenwärtig sein.

EIN "Codepage"Normalerweise bedeutet a Byte-orientiert Codierung, aber in Bezug auf eine Reihe von Codierungen (Abdeckung verschiedener Skripte), in denen viele Zeichen dasselbe teilen Codes In den meisten oder all diesen Code -Seiten. Bekannte Code-Seiten-Suiten sind "Windows" (basierend auf Windows-1252) und "IBM"/"DOS" (basierend auf Code Seite 437), sehen Windows -Code -Seite für Details. Die meisten, aber nicht alle, die als Codeseiten bezeichneten Engpages sind Einzelbyte-Codierungen (siehe aber Oktett auf Bytegröße.)

Die Architektur (CDRA) der IBM -Charakterdatenrepräsentation bezeichnet Entitäten mit codierten Charakter -Set -Identifikatoren (Ccsids), von denen jeder als "Zeichen", "Zeichensatz", "Code -Seite" oder "Charmap" bezeichnet wird.[8]

Der Begriff "Code -Seite" tritt in UNIX oder Linux nicht auf, wo "Charmap" normalerweise im größeren Kontext von Lokalen bevorzugt wird.

Im Gegensatz zu einem "codierter Zeichensatz", Eine" Charaktercodierung "ist eine Karte von abstrakten Zeichen bis Codewörter. Ein "Zeichensatz" in Http (und MIME) Das Sprachgebrauch ist das gleiche wie eine Zeichencodierung (aber nicht das gleiche wie CCS).

"Erbe codieren "ist ein Begriff, der manchmal zur Charakterisierung alter Charakter -Codierungen verwendet wird, aber mit einer Unklarheit des Sinnes. Der größte Teil seiner Verwendung liegt im Kontext von Unicodifikation, wo es sich auf Codierungen bezieht, die nicht alle Unicode -Codepunkte abdecken oder allgemein ein etwas anderes Zeichenrepertoire verwenden: mehrere Codepunkte, die einen Unicode -Zeichen darstellen, darstellen.[10] oder versa (siehe z. Code Seite 437). Einige Quellen beziehen sich auf eine Codierung als Erbe Nur weil es Unicode vorausging.[11] Alle Windows -Code -Seiten werden normalerweise als Vermächtnis bezeichnet, beide, weil sie nicht alle 2 darstellen können, weil sie nicht alle 2 darstellen können21 Mögliche Unicode -Codepunkte.

Zeichenkodierübersetzung

Aufgrund der Verwendung vieler Charakterkodierungsmethoden (und der Notwendigkeit der Rückwärtskompatibilität mit archivierten Daten) wurden viele Computerprogramme entwickelt, um Daten zwischen Codierungsschemata als Datenform zu übersetzen Transcodierung. Einige davon werden unten zitiert.

Plattformübergreifend:

  • Internetbrowser - Die meisten modernen Webbrowser bieten automatisch Charakter -Codierungserkennung. Auf Firefox 3 finden Sie beispielsweise das Untermenü der Ansicht/Zeichencodierung.
  • Ikonv - Programm und standardisierte API zum Konvertieren von Kodierungen
  • LIT - Programm, das die Codierung von Eingaben und Ausgaben in Programme umwandelt, die interaktiv ausgeführt werden
  • convert_encoding.py - Python -basiertes Dienstprogramm zum Konvertieren von Textdateien zwischen willkürlichen Codierungen und Zeilenende.[12]
  • decodeh.py - Algorithmus und Modul, um die Codierung einer Zeichenfolge heuristisch zu erraten.[13]
  • Internationale Komponenten für Unicode - Ein Satz von C- und Java -Bibliotheken zur Durchführung von Charset Conversion. UCONV kann von ICU4C verwendet werden.
  • Chardet - Dies ist eine Übersetzung der Mozilla Automatisch-codierender Anerkennungscode in die Python-Computersprache.
  • Die neueren Versionen der Unix Datei Befehl Versuch, eine grundlegende Erkennung von Charaktercodierung durchzuführen (auch verfügbar auf Cygwin).
  • CharsetC ++ Vorlagenbibliothek mit einfacher Schnittstelle, um zwischen C ++/benutzerdefinierten Streams zu konvertieren. charset definierte viele Charaktere und ermöglicht es Ihnen, Unicode-Formate mit Unterstützung von zu verwenden Endiangess.

Unix-artig:

  • CMV - Einfaches Werkzeug für Transcodierungsdateinamen.[14]
  • ConvMV - Konvertieren Sie einen Dateinamen von einer Codierung in einen anderen.[15]
  • CSTOCs - Konvertieren Sie den Dateiinhalt von einer Codierung in die tschechische und slowakische Sprache.
  • ENCA - Analysiert Codierungen für bestimmte Textdateien.[16]
  • Recode - Konvertieren Sie den Dateiinhalt von einer Codierung in einen anderen[17]
  • UTRAC - Konvertieren Sie den Dateiinhalt von einer Codierung in einen anderen.[18]

Fenster:

  • Coding.convert - .NET -API[19]
  • Multibytetowidechar/Widechartomultibyte - Konvertieren von ANSI in Unicode & Unicode in ANSI[20]
  • CSCVT - Charakter -Set -Konvertierungswerkzeug[21]
  • ENCA - Analysiert Codierungen für bestimmte Textdateien.[22]

Siehe auch

Gemeinsame Charaktercodierungen

Verweise

  1. ^ Definition von Das Tech -Begriffswörterbuch
  2. ^ Tom Henderson (17. April 2014). "Alte Computer -Charakter -Code -Tabellen - und warum sie immer noch relevant sind". Smartbear. Abgerufen 29. April 2014.
  3. ^ Tom Jennings (1. März 2010). "Eine kommentierte Geschichte einiger Charaktercodes". Abgerufen 1. November 2018.
  4. ^ "IBM Elektronische Datenverarbeitungsmaschinen Typ 702 Vorläufiger Informationshandbuch" (PDF). 1954. p. 80. 22-6173-1.
  5. ^ Strelho, Kevin (15. April 1985). "IBM treibt Festplatten zu neuen Standards". InfoWorld. Beliebtes Computing Inc. S. 29–33. Abgerufen 10. November 2020.
  6. ^ "Unicode Glossar". Unicode -Konsortium.
  7. ^ "Terminologie (die Java -Tutorials)". Orakel. Abgerufen 25. März 2018.
  8. ^ a b c d e "Unicode Technischer Bericht Nr. 17: Unicode -Charakter -Codierungsmodell". 11. November 2008. Abgerufen 8. August 2009.
  9. ^ Shawn Steele (15. März 2005). "Was ist der Unterschied zwischen einer Codierung, einer Code -Seite, einem Zeichensatz und Unicode?". Microsoft Docs.
  10. ^ "Verarbeitung von Datenbankinformationen mit Unicode, einer Fallstudie". Archiviert von das Original am 17. Juni 2006.
  11. ^ Constable, Peter (13. Juni 2001). "Charakter -Set -Codierungs -Grundlagen". Implementierung von Schreibsystemen: Eine Einführung. SIL International. Archiviert von das Original am 5. Mai 2013. Abgerufen 19. März 2010.
  12. ^ Convert coding.py an GitHub
  13. ^ "DecodeH - dekodieren Sie heuristisch eine Zeichenfolge oder eine Textdatei". Archiviert von das Original am 8. Januar 2008.
  14. ^ "CharsetMove - Einfaches Werkzeug zum Transkodieren von Dateinamen".
  15. ^ "Convmv - konvertiert Dateinamen von einer Codierung in einen anderen".
  16. ^ "Extrem naiver Charset -Analysator". Archiviert von das Original am 4. Dezember 2010. Abgerufen 11. März 2008.
  17. ^ Recode an GitHub
  18. ^ "Utrac Homepage".
  19. ^ "Coding.Convert -Methode". Microsoft .net Framework Class Library.
  20. ^ "Multibytetowidechar/Widechartomultibyte - Konvertieren von ANSI in Unicode & Unicode in ANSI". Microsoft -Unterstützung.
  21. ^ "Kalyttas Charakter -Set -Konverter".
  22. ^ "ENCA Binary für 32 -Bit -Fenster zusammengestellt". Archiviert von das Original am 15. März 2012. Abgerufen 31. März 2011.

Weitere Lektüre

Externe Links