HZ (kódování znaků) - HZ (character encoding)
MIME / IANA | HZ-GB-2312 |
---|---|
Jazyk (y) | Zjednodušená čínština, Angličtina, ruština |
Standard | RFC 1843 |
Klasifikace | Kódování CJK, Brnění ASCII, kódování s proměnnou šířkou, stavové kódování |
Transformuje / kóduje | GB 2312 |
Předcházet | zW |
Uspěl | Citováno pro tisk, UTF-7, 8 BITMIME |
The Kódování znaků HZ[1] je kódování z GB2312 který byl dříve běžně používán v e-mailu a USENET příspěvky. Byl navržen v roce 1989 Fung Fung Lee (čínština : 李楓 峰) z Stanfordská Univerzita, a následně kodifikován v roce 1995 do RFC 1843.[2]
HZ, zkratka pro Hanzi (zjednodušená čínština : 汉字; tradiční čínština : 漢字; lit. 'Chinese Characters'), kódování bylo vynalezeno s cílem usnadnit použití čínských znaků prostřednictvím e-mailu, který v té době umožňoval pouze 7bitové znaky. Proto místo standardních únikových sekvencí ISO 2022 (jako v případě ISO-2022-JP ) nebo 8bitové znaky (jako v případě EUC ), kód HZ používá pouze čínské znaky k vytištění, 7bitové znaky.
To bylo také populární v sítích USENET, které na konci 80. let a na počátku 90. let obecně neumožňovaly přenos 8bitových znaků nebo únikových znaků.
Dějiny
HZ nahradilo dřívější kódování „zW“, které označilo celé řádky jako text GB2312 tím, že je začalo znaky zW
.[3]
Struktura a použití
V systému kódování HZ fungují posloupnosti znaků „~ {“ a „~}“ jako únikové sekvence; cokoli mezi nimi je interpretováno jako čínština kódovaná v GB2312 (nejvýznamnější bity jsou ignorovány). Mimo únikové sekvence se předpokládá, že jsou znaky ASCII.
Příklad pomůže ilustrovat vztah mezi GB2312, EUC-CN a kód HZ:
Formulář | Kód | S únikovými sekvencemi | Poznámky |
---|---|---|---|
Kuten / Qūwèi / 区 位 formulář | 5027 | — | Zóna / oddělení / řada (ku / qū /区) 50 bodů (deset / wi /位) 27 |
Formulář ISO 2022 | 5216 3B16 | 0E16 5216 3B16 0F16 | 50 + 32 = 82 = 5216 |
Formulář EUC-CN | D216 BB16 | D216 BB16 | 5216 ∨ 8016 = D216 |
Formulář HZ (standardní) | 5216 3B16 | 7E16 7B16 5216 3B16 7E16 7D16 | Zobrazuje se jako ~ {R; ~} bez dekodéru HZ |
Formulář HZ (alternativní) | D216 BB16 | 7E16 7B16 D216 BB16 7E16 7D16 | Formulář EUC přijatelný alespoň pro některé dekodéry |
HZ byl původně navržen pro použití čistě jako 7bitový kód. Pokud to však situace dovolí, řídicí sekvence „~ {“ a „~}“ někdy obklopují znaky představované v EUC-CN; toto alternativní použití umožňuje, aby byla čínština čitelná buď pomocí softwaru dekodéru HZ, nebo pomocí systému, který rozumí EUC-CN.
Specifikace dále definuje, že:
- sekvence "~~" má být považována za kódující jeden ASCII "~" a,
- znak "~" následovaný novým řádkem bude zahozen.
Ne všechny dekodéry HZ však dodržují tato dvě pravidla.
Kodéry a dekodéry HZ
První kodér a dekodér HZ byly napsány v roce 1989 vynálezcem kódu pro Unix operační systém.[4]
The hztty program, také pro Unix operační systém, byl také mezi prvními a jedním z nejpopulárnějších HZ dekodérů. Odchyluje se od specifikace v tom, že bude zobrazovat řídicí sekvence (tj. „~ {“ A „~}“) a nezachází zvlášť s „~~“ a „~“ následovanými novým řádkem. To pravděpodobně umožnilo softwaru, který předpokládá, že jeden znak zaujme jednu pozici obrazovky (na textové obrazovce), aby správně fungoval bez úprav.
Podpora zapnuta Microsoft Windows přišel později a řada „čínských systémů“ třetích stran podporuje HZ. Tyto systémy mohou poskytovat možnost skrýt únikové sekvence.
Nevýhody
Vzhledem k jeho únikovým sekvencím a navíc proto, že oddělovače úniků jsou tisknutelné znaky v ASCII, je poměrně snadné vytvořit sekvence útočných bajtů, které jsou zpáteční z HZ do Unicode a zpět. Použití kódování HZ je tedy v sadách pro ochranu před malwarem považováno za podezřelé.[5][je zapotřebí lepší zdroj ]
Reference
- ^ „HZ - formát dat pro výměnu souborů libovolně smíšených čínských znaků a znaků ASCII“. Archivovány od originál dne 2005-10-27.
- ^ RFC 1843
- ^ Lunde, Ken (1995-12-18). "CJK.INF verze 1.9".
- ^ "HZ balíček 2.0 - HZ spec, referenční kodér a zdrojový kód dekodéru".
- ^ https://bugzilla.mozilla.org/show_bug.cgi?id=935453