Articulo de referencia

HZ (codificación de caracteres)

La codificación de caracteres HZ [ 1 ] es una codificación de GB 2312 que antes se usaba comúnmente en correos electrónicos y publicaciones de USENET . Fue diseñada en 1989 por ...

La codificación de caracteres HZ [ 1 ] es una codificación de GB 2312 que antes se usaba comúnmente en correos electrónicos y publicaciones de USENET . Fue diseñada en 1989 por Fung Fung Lee ( chino :李楓峰) de la Universidad de Stanford y posteriormente codificada en 1995 en el RFC 1843. [ 2 ]

La codificación HZ, abreviatura de Hanzi ( chino simplificado :汉字; chino tradicional :漢字; lit. ' Caracteres chinos ' ), se inventó para facilitar el uso de caracteres chinos a través del correo electrónico, que en aquel entonces solo permitía caracteres de 7 bits. Por lo tanto, en lugar de las secuencias de escape estándar ISO 2022 (como en el caso de ISO-2022-JP ) o los caracteres de 8 bits (como en el caso de EUC ), el código HZ utiliza únicamente caracteres imprimibles de 7 bits para representar caracteres chinos.

También fue popular en las redes USENET, que a finales de los años 80 y principios de los 90, generalmente no permitían la transmisión de caracteres de 8 bits ni de caracteres de escape.

Historia

HZ sustituyó a la codificación anterior "zW", que marcaba líneas completas como texto GB 2312 al comenzarlas con los caracteres zW. [ 3 ]

Estructura y uso

En el sistema de codificación HZ, las secuencias de caracteres "~{" y "~}" actúan como secuencias de escape; todo lo que se encuentra entre ellas se interpreta como chino codificado en GB 2312 (los bits más significativos se ignoran). Fuera de las secuencias de escape, se asume que los caracteres son ASCII .

Un ejemplo ayudará a ilustrar la relación entre GB 2312 , EUC-CN y el código HZ:

HZ fue diseñado originalmente para usarse exclusivamente como un código de 7 bits. Sin embargo, cuando las circunstancias lo permiten, las secuencias de escape "~{" y "~}" a veces rodean caracteres representados en EUC-CN; este uso alternativo permite que el chino sea legible con la ayuda de un software decodificador de HZ o con un sistema que entienda EUC-CN.

Además, la especificación define que:

  • La secuencia "~~" debe tratarse como si codificara un único carácter ASCII "~" y,
  • El carácter "~" seguido de un salto de línea debe descartarse.

Sin embargo, no todos los decodificadores HZ siguen estas dos reglas.

Codificadores y decodificadores HZ

El primer codificador y decodificador HZ fue escrito en 1989 por el inventor del código para el sistema operativo Unix . [ 4 ]

El programa hztty , también para el sistema operativo Unix , fue uno de los primeros y más populares decodificadores HZ. Se desvía de la especificación en que muestra las secuencias de escape (es decir, "~{" y "~}") y no trata de forma especial "~~" ni "~" seguidos de un salto de línea. Probablemente, esto se hizo para permitir que el software que asume que un carácter ocupa una posición en la pantalla (en una pantalla de texto) funcione correctamente sin modificaciones.

La compatibilidad con Microsoft Windows llegó más tarde, y varios sistemas de terceros, de origen chino, son compatibles con HZ. Estos sistemas pueden ofrecer la opción de ocultar las secuencias de escape.

Desventajas

Debido a sus secuencias de escape, y además porque sus delimitadores de escape son caracteres imprimibles en ASCII, es bastante fácil construir secuencias de bytes de ataque que vayan y vengan entre HZ y Unicode. Por lo tanto, el uso de la codificación HZ es considerado sospechoso por los paquetes de protección contra malware. [ 5 ]

Referencias

  1. "HZ Un formato de datos para intercambiar archivos con caracteres chinos y ASCII mezclados arbitrariamente" . Archivado del original el 27 de octubre de 2005.
  2. RFC 1843 
  3. ^ Lunde, Ken (18 de diciembre de 1995). "CJK.INF Versión 1.9" .
  4. "Paquete HZ 2.0 : especificación HZ, código fuente del codificador y decodificador de referencia" .
  5. "935453 - Recopilar telemetría sobre HZ y otras codificaciones que podríamos intentar eliminar" . Archivado del original el 19 de mayo de 2017. Consultado el 18 de junio de 2018 .