HZ (kodowanie znaków)
MIME / IANA | HZ-GB-2312 |
---|---|
Języki) | Uproszczony chiński , angielski , rosyjski |
Stworzone przez | Fung Fung Lee |
Standard | RFC1843 _ |
Klasyfikacja | kodowanie CJK , zbroja ASCII , kodowanie o zmiennej szerokości , kodowanie stanowe |
Transformuje / koduje | GB 2312 |
Poprzedzony | zaraz wracam |
zastąpiony przez | Cytowany do druku , UTF-7 , 8BITMIME |
Kodowanie znaków HZ to kodowanie GB 2312 , które było wcześniej powszechnie używane w wiadomościach e-mail i wiadomościach USENET . Został zaprojektowany w 1989 roku przez Fung Fung Lee ( chiński : 李楓峰 ) z Uniwersytetu Stanforda , a następnie skodyfikowany w 1995 roku w RFC 1843.
HZ, skrót od Hanzi ( chiński uproszczony : 汉字 ; chiński tradycyjny : 漢字 ; dosł. „Znaki chińskie”), kodowanie zostało wynalezione w celu ułatwienia używania chińskich znaków w wiadomościach e-mail, które w tamtym czasie dopuszczały tylko znaki 7-bitowe . Dlatego zamiast standardowych sekwencji specjalnych ISO 2022 (jak w przypadku ISO-2022-JP ) lub 8-bitowych znaków (jak w przypadku EUC ), kod HZ używa tylko drukowalnych, 7-bitowych znaków do reprezentowania języka chińskiego postacie.
Był również popularny w sieciach USENET, które pod koniec lat 80. i na początku lat 90. generalnie nie pozwalały na transmisję znaków 8-bitowych ani znaków specjalnych.
Historia
HZ zastąpiło wcześniejsze kodowanie „zW”, które oznaczało całe wiersze jako tekst GB 2312, rozpoczynając je od znaków zW
.
Struktura i zastosowanie
W systemie kodowania HZ sekwencje znaków „~{” i „~}” działają jak sekwencje specjalne; wszystko między nimi jest interpretowane jako chińskie zakodowane w GB 2312 (najbardziej znaczące bity są ignorowane). Poza sekwencjami specjalnymi przyjmuje się, że znaki to ASCII .
Przykład pomoże zilustrować związek między GB 2312 , EUC-CN i kodem HZ:
Formularz | Kod | Z sekwencjami ucieczki | Uwagi |
---|---|---|---|
Kuten / Qūwèi / 区位 forma | 5027 | — | Strefa / oddział / rząd (ku / qū / 区 ) 50, punkt (ten / wèi / 位 ) 27 |
Formularz ISO 2022 | 52 16 3B 16 | 0E 16 52 16 3B 16 0F 16 | 50 + 32 = 82 = 52 16 |
Formularz EUC-CN | D2 16 BB 16 | D2 16 BB 16 | 52 16 ∨ 80 16 = D2 16 |
Forma HZ (standardowa) | 52 16 3B 16 | 7E 16 7B 16 52 16 3B 16 7E 16 7D 16 | Pojawia się jako ~{R;~} bez dekodera HZ |
Formularz HZ (alternatywny) | D2 16 BB 16 | 7E 16 7B 16 D2 16 BB 16 7E 16 7D 16 | Forma EUC akceptowalna przynajmniej dla niektórych dekoderów |
HZ został pierwotnie zaprojektowany do użytku wyłącznie jako kod 7-bitowy. Jednak, gdy pozwalają na to sytuacje, sekwencje specjalne „~{” i „~}” czasami otaczają znaki reprezentowane w EUC-CN; to alternatywne zastosowanie pozwala na czytelność języka chińskiego za pomocą oprogramowania dekodera HZ lub systemu, który rozumie EUC-CN.
Dodatkowo specyfikacja określa, że:
- sekwencję „~~” należy traktować jako kodującą pojedynczy znak ASCII „~” oraz,
- znak „~”, po którym następuje nowa linia, należy odrzucić.
Jednak nie wszystkie dekodery HZ przestrzegają tych dwóch zasad.
Kodery i dekodery HZ
Pierwszy koder i dekoder HZ zostały napisane w 1989 roku przez wynalazcę kodu dla systemu operacyjnego Unix .
Program hztty , również dla systemu operacyjnego Unix , był również jednym z pierwszych i jednym z najpopularniejszych dekoderów HZ. Odbiega od specyfikacji tym, że wyświetla sekwencje specjalne (tj. "~{" i "~}") i nie traktuje specjalnie "~~" i "~", po których następuje znak nowej linii. Miało to prawdopodobnie na celu umożliwienie poprawnego działania oprogramowania, które zakłada, że jeden znak zajmuje jedną pozycję ekranu (na ekranie tekstowym) bez modyfikacji.
Obsługa systemu Microsoft Windows pojawiła się później, a wiele „chińskich systemów” innych firm obsługuje HZ. Systemy te mogą zapewniać opcję ukrywania sekwencji specjalnych.
Niedogodności
Ze względu na jego sekwencje ucieczki, a ponadto, ponieważ jego ograniczniki ucieczki są znakami drukowalnymi w ASCII, dość łatwo jest skonstruować sekwencje bajtów ataku, które przechodzą w obie strony z HZ do Unicode iz powrotem. Korzystanie z kodowania HZ jest zatem traktowane jako podejrzane przez pakiety ochrony przed złośliwym oprogramowaniem. [ potrzebne lepsze źródło ]
- ^ „HZ — format danych do wymiany plików z dowolnie mieszanymi znakami chińskimi i znakami ASCII” . Zarchiwizowane od oryginału w dniu 2005-10-27.
- Bibliografia _ _
- ^ Lunde, Ken (18.12.1995). "CJK.INF wersja 1.9" .
- ^ „Pakiet HZ 2.0 — specyfikacja HZ, referencyjny koder i kod źródłowy dekodera” .
- ^ "935453 - Zbierz dane telemetryczne dotyczące HZ i innych kodowań, które możemy spróbować usunąć" . Zarchiwizowane od oryginału w dniu 2017-05-19 . Źródło 2018-06-18 .