HZ (кодировка символов)
МИМ / IANA | ХЗ-ГБ-2312 |
---|---|
Язык(и) | Упрощенный китайский , английский , русский |
Сделано | Фунг Фунг Ли |
Стандартный | РФК 1843 |
Классификация | Кодировка CJK , броня ASCII , кодирование переменной ширины , кодирование с отслеживанием состояния |
Преобразует/кодирует | ГБ 2312 |
Предшествует | zW |
Преемник | Цитируется-печать , UTF-7 , 8BITMIME |
HZ Кодировка символов [1] — это кодировка GB 2312 , которая ранее широко использовалась в сообщениях электронной почты и USENET . Он был разработан в 1989 году Фунг Фунг Ли ( китайский : 李楓峰 ) из Стэнфордского университета и впоследствии кодифицирован в 1995 году в RFC 1843. [2]
HZ, сокращение от Hanzi ( упрощенный китайский : 汉字 ; традиционный китайский : 漢字 ; букв. «Китайские иероглифы»), кодировка была изобретена для облегчения использования китайских иероглифов в электронной почте, которая в то время допускала только 7-битные символы. . Таким образом, вместо стандартных escape-последовательностей ISO 2022 (как в случае с ISO-2022-JP ) или 8-битных символов (как в случае EUC ), код HZ использует только печатные 7-битные символы для представления китайского языка. персонажи.
Он также был популярен в сетях USENET, которые в конце 1980-х и начале 1990-х годов обычно не позволяли передавать 8-битные символы или escape-символы.
История [ править ]
HZ заменил более раннюю кодировку «zW», которая помечала целые строки как текст GB 2312, начиная их с символов zW
. [3]
Структура и использование [ править ]
В системе кодирования HZ последовательности символов «~{» и «~}» действуют как escape-последовательности; все, что находится между ними, интерпретируется как китайское, закодированное в GB 2312 (старшие биты игнорируются). За пределами escape-последовательностей предполагается, что символы ASCII .
Пример поможет проиллюстрировать связь между GB 2312 , EUC-CN и кодом HZ:
Форма | Код | С escape-последовательностями | Примечания |
---|---|---|---|
Кутен / Кувэй / локации форма | 5027 | — | зон/отделов/рядов (ку/цю/ 区 50 очков (десять/вэй/位 ) , 27 ). |
Форма ISO 2022 | 52 16 3Б 16 | 0Е 16 52 16 3Б 16 0F 16 | 50 + 32 = 82 = 52 16 |
Форма EUC-CN | Д2 16 ББ 16 | Д2 16 ББ 16 | 52 16 ∨ 80 16 = D2 16 |
Форма ХЗ (стандартная) | 52 16 3Б 16 | 7Е 16 7Б 16 52 16 3Б 16 7Е 16 7Д 16 | Появляется как ~{R;~} без декодера HZ |
Форма ГЦ (альтернативный) | Д2 16 ББ 16 | 7Е 16 7Б 16 Д2 16 ББ 16 7Е 16 7Д 16 | Форма EUC приемлема по крайней мере для некоторых декодеров |
HZ изначально разрабатывался для использования исключительно как 7-битный код. Однако, когда позволяют ситуации, escape-последовательности «~{» и «~}» иногда окружают символы, представленные в EUC-CN; это альтернативное использование позволяет читать китайский язык либо с помощью программного обеспечения декодера HZ, либо с помощью системы, которая понимает EUC-CN.
Кроме того, спецификация определяет, что:
- последовательность «~~» следует рассматривать как кодировку одного ASCII «~» и,
- символ «~», за которым следует новая строка, должен быть отброшен.
Однако не все декодеры HZ следуют этим двум правилам.
Кодеры и декодеры HZ [ править ]
Первые кодер и декодер HZ были написаны в 1989 году изобретателем кода для операционной системы Unix . [4]
The Программа hztty , также для операционной системы Unix , также была одной из первых и одной из самых популярных декодеров HZ. Он отличается от спецификации тем, что отображает escape-последовательности (т. е. «~{» и «~}») и не обрабатывает специально «~~» и «~», за которыми следует символ новой строки. Вероятно, это было сделано для того, чтобы позволить программному обеспечению, которое предполагает, что один символ занимает одну позицию экрана (на текстовом экране), работать правильно без изменений.
Поддержка в Microsoft Windows появилась позже, а ряд сторонних «китайских систем» поддерживают HZ. Эти системы могут предоставлять возможность скрыть escape-последовательности.
Недостатки [ править ]
Благодаря escape-последовательностям и, кроме того, поскольку его escape-разделители представляют собой печатные символы в ASCII, довольно легко создавать последовательности атакующих байтов, которые переходят из HZ в Unicode и обратно. Таким образом, использование кодировки HZ рассматривается пакетами защиты от вредоносных программ как подозрительное. [5] [ нужен лучший источник ]
Ссылки [ править ]
- ^ «HZ — формат данных для обмена файлами, содержащими произвольно смешанные символы китайского языка и ASCII» . Архивировано из оригинала 27 октября 2005 г.
- ^ РФК 1843
- ^ Лунде, Кен (18 декабря 1995 г.). «CJK.INF Версия 1.9» .
- ^ «Пакет HZ 2.0 — спецификация HZ, исходный код кодера и декодера» .
- ^ «935453 — Соберите телеметрию о HZ и других кодировках, которые мы можем попытаться удалить» . Архивировано из оригинала 19 мая 2017 г. Проверено 18 июня 2018 г.