HZ (kodowanie znaków)

kodowanie Hz
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:

Różne formy kodu GB 2312 (0xD2BB) dla znaku „一” (jeden)
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 ]