Hz (Charaktercodierung)
Mime / Iana | Hz-GB-2312 |
---|---|
Sprachen) | Vereinfachtes Chinesisch, Englisch, Russisch |
Erstellt von | Pilze Pilze Lee |
Standard | RFC 1843 |
Einstufung | CJK -Codierung, ASCII -Rüstung, Codierung der variablen Breite, Staatliche Kodierung |
Transformationen / codiert | GB 2312 |
Vorausgegangen von | Zw |
gefolgt von | Zitiert, UTF-7, 8bitmime |
Das Hz Charakter -Codierung[1] ist ein Codierung von GB 2312 das wurde früher häufig in E -Mail und in E -Mail verwendet und Usenet Postings. Es wurde 1989 von Pilg Fung Lee (entworfenChinesisch: 李楓峰) von Universität in Stanfordund anschließend 1995 in RFC 1843 kodifiziert.[2]
Der hz, kurz für Hanzi (vereinfachtes Chinesisch: 汉字; traditionelles Chinesisch: 漢字; zündete. 'Chinesische Charaktere'), Codierung wurde erfunden, um die Verwendung chinesischer Charaktere per E-Mail zu erleichtern, was zu dieser Zeit nur 7-Bit-Zeichen erlaubte. Daher anstelle von Standard -ISO 2022 -Escape -Sequenzen (wie im Fall von ISO-2022-JP) oder 8-Bit-Zeichen (wie im Fall von EUC), der Hz-Code verwendet nur druckbare 7-Bit-Zeichen, um chinesische Zeichen darzustellen.
Es war auch in Usenet-Netzwerken beliebt, die in den späten 1980er und frühen 1990er Jahren im Allgemeinen keine Übertragung von 8-Bit-Charakteren oder Fluchtfiguren erlaubten.
Geschichte
Hz ersetzte die frühere "ZW" Zw
.[3]
Struktur und Verwendung
Im HZ -Codierungssystem wirken die Zeichensequenzen "~ {" und "~}" als Fluchtsequenzen; Alles zwischen ihnen wird als chinesische in GB 2312 codiert (die bedeutendsten Bits werden ignoriert). Außerhalb der Escape -Sequenzen wird angenommen ASCII.
Ein Beispiel wird helfen, die Beziehung zwischen zu veranschaulichen GB 2312, EUC-CNund der Hz -Code:
Bilden | Code | Mit Fluchtsequenzen | Bemerkungen |
---|---|---|---|
Kuten / Qūwèi / 区位 bilden | 5027 | — | Zone/Station/Row (ku/qū/区) 50, Punkt (zehn/wèi/位) 27 |
ISO 2022 Form | 5216 3b16 | 0e16 5216 3b16 0f16 | 50 + 32 = 82 = 5216 |
EUC-CN-Form | D216 BB16 | D216 BB16 | 5216 ∨ 8016 = D216 |
Hz Form (Standard) | 5216 3b16 | 7e16 7b16 5216 3b16 7e16 7d16 | Erscheint als ~ {R; ~} ohne Hz Decoder |
Hz Form (alternativ) | D216 BB16 | 7e16 7b16 D216 BB16 7e16 7d16 | EUC Form für zumindest einige Decoder akzeptabel |
HZ wurde ursprünglich so konzipiert, dass sie nur als 7-Bit-Code verwendet werden. Wenn es jedoch Situationen erlaubt, umgeben die Fluchtsequenzen "~ {" und "~}" manchmal in EUC-CN dargestellte Zeichen; Mit dieser alternativen Verwendung kann Chinese mit Hilfe der HZ-Decoder-Software oder mit einem System, das EUC-CN versteht, lesbar sein.
Darüber hinaus definiert die Spezifikation dies:
- Die Sequenz "~~" soll als Codierung eines einzelnen ASCII "~" und, behandelt werden.
- Der Charakter "~", gefolgt von einer neuen Linie, soll verworfen werden.
Allerdings folgen nicht alle Hz -Decoder diesen beiden Regeln.
Hz -Encoder und Decoder
Der erste Hz -Encoder und Decoder wurden 1989 vom Erfinder des Codes für die geschrieben Unix Betriebssystem.[4]
Das Hztty Programm auch für die Unix Das Betriebssystem war ebenfalls zu den ersten und einer der beliebtesten Hz -Decoder. Es weicht von der Spezifikation ab, da es die Escape -Sequenzen (d. H. "~ {" und "~}") anzeigt, und es behandelt nicht "~~" und "~", gefolgt von einer neuen Zeile speziell. Dies sollte wahrscheinlich die Software erlauben, dass ein Zeichen eine Bildschirmposition (auf einem Textbildschirm) ohne Änderung korrekt funktionieren.
Unterstützung auf Microsoft Windows kam später und eine Reihe von "chinesischen Systemen" von Drittanbietern unterstützt HZ. Diese Systeme bieten möglicherweise die Möglichkeit, die Escape -Sequenzen zu verbergen.
Nachteile
Aufgrund seiner Fluchtsequenzen und außerdem, da seine Fluchtgrenzwerte in ASCII druckbare Zeichen sind, ist es ziemlich einfach, Angriffsbyte-Sequenzen zu konstruieren, die von Hz zu Unicode und Rücken runden. Die Verwendung der HZ -Codierung wird somit durch Malware -Schutzsuiten als misstrauisch behandelt.[5]
Verweise
- ^ "HZ - Ein Datenformat zum Austausch von Dateien willkürlich gemischter chinesischer und ASCII -Zeichen". Archiviert von das Original Am 2005-10-27.
- ^ RFC 1843
- ^ Lunde, Ken (1995-12-18). "Cjk.inf Version 1.9". Archiviert vom Original am 2017-03-18. Abgerufen 2019-02-27.
- ^ "HZ -Paket 2.0 - HZ -Spezifikation, Referenzcodierer und Decoder -Quellcode".
- ^ "935453 - Sammeln Sie Telemetrie über HZ und andere Codierungen, die wir möglicherweise entfernen können.". Archiviert vom Original am 2017-05-19. Abgerufen 2018-06-18.