Из Википедии, бесплатной энциклопедии
  (Перенаправлен с HZ-GB-2312 )
Перейти к навигации Перейти к поиску

Кодировка символов ГЦ [1] является кодирование из GB2312 , который ранее был широко используется в электронной почте и USENET проводки. Он был разработан в 1989 году Фунг Фунг Ли ( китайский :李楓 峰) из Стэнфордского университета и впоследствии кодифицирован в 1995 году в RFC 1843. [2]

HZ, сокращение от Hanzi ( упрощенный китайский :汉字; традиционный китайский :漢字; букв. «Китайские иероглифы»), кодировка была изобретена для облегчения использования китайских иероглифов в электронной почте, которая в то время допускала только 7-битные символы. . Поэтому вместо стандартных управляющих последовательностей ISO 2022 (как в случае ISO-2022-JP ) или 8-битных символов (как в случае EUC ) код HZ использует только печатаемые 7-битные символы для представления китайского языка. символы.

Он также был популярен в сетях USENET, которые в конце 1980-х - начале 1990-х годов обычно не позволяли передавать 8-битные символы или escape-символы.

История [ править ]

HZ заменил более раннюю кодировку «zW», которая помечала целые строки как текст GB2312, начиная их с символов zW. [3]

Структура и использование [ править ]

В системе кодирования HZ последовательности символов «~ {» и «~}» действуют как escape-последовательности; все, что находится между ними, интерпретируется как китайский, закодированный в GB2312 (старшие биты игнорируются). Предполагается, что вне управляющих последовательностей символы являются ASCII .

Пример поможет проиллюстрировать взаимосвязь между GB2312 , EUC-CN и кодом HZ:

Изначально HZ был разработан для использования исключительно как 7-битный код. Однако, когда позволяют ситуации, escape-последовательности «~ {» и «~}» иногда окружают символы, представленные в EUC-CN; это альтернативное использование позволяет читать на китайском языке либо с помощью программного обеспечения декодера HZ, либо с помощью системы, которая понимает EUC-CN.

Кроме того, спецификация определяет, что:

  • последовательность «~~» должна рассматриваться как кодирующая один ASCII «~» и,
  • символ "~", за которым следует новая строка, следует отбросить.

Однако не все декодеры HZ следуют этим двум правилам.

Кодеры и декодеры HZ [ править ]

Первый кодер и декодер HZ были написаны в 1989 году изобретателем кода для операционной системы Unix . [4]

Программа hztty , также для операционной системы Unix , также была одной из первых и самых популярных декодеров HZ. Он отклоняется от спецификации в том, что он отображает escape-последовательности (т.е. «~ {» и «~}»), и не обрабатывает «~~» и «~», за которыми следует символ новой строки. Вероятно, это было сделано для того, чтобы программное обеспечение, которое предполагает, что один символ занимает одну позицию экрана (на текстовом экране), могло работать правильно без изменений.

Поддержка Microsoft Windows появилась позже, и ряд сторонних «китайских систем» поддерживают HZ. Эти системы могут предоставлять возможность скрыть escape-последовательности.

Недостатки [ править ]

Из-за его управляющих последовательностей, а также из-за того, что его escape-разделители представляют собой печатаемые символы в ASCII, довольно легко построить последовательности байтов атаки, которые возвращаются от HZ к Unicode и обратно. Таким образом, использование кодировки HZ рассматривается как подозрительное для программ защиты от вредоносных программ. [5] [ нужен лучший источник ]

Ссылки [ править ]

  1. ^ «HZ - Формат данных для обмена файлами, состоящими из произвольно смешанных китайских символов и символов ASCII» . Архивировано из оригинала на 2005-10-27.
  2. ^ RFC 1843 
  3. ^ Лунде, Кен (1995-12-18). «CJK.INF Версия 1.9» .
  4. ^ "Пакет HZ 2.0 - спецификация HZ, исходный код эталонного кодировщика и декодера" .
  5. ^ https://bugzilla.mozilla.org/show_bug.cgi?id=935453