UTF-16

UTF-16

UTF-16 que significa en ISO/IEC 10646:2003, “UCS Transformation Format for 16 Planes of Group 00.” es una forma de codificación de caracteres UCS y Unicode utilizando símbolos de longitud variable. Se halla oficialmente definido en el Anexo C de la norma ISO/IEC 10646:2003. También está descrita en el Estándar Unicode (versión 3.0 o superior), al igual que en la RFC 2781 de la IETF.

Sus características principales son:

  • Es capaz de representar cualquier carácter Unicode.
  • Utiliza símbolos de longitud variable: 1 o 2 palabras de 16 bits por carácter Unicode (2 o 4 bytes). La unidad de información es la palabra de 16 bits.
  • Está optimizado para representar caracteres en el plano básico multilingüe o BMP; caracteres en el rango U+0000 a U+FFFF. El BMP contiene la gran mayoría de caracteres y sistemas de escritura en uso en la actualidad. Cuando se limita al plano básico multilingüe, UTF-16 puede ser considerado una forma de codificación con símbolos de tamaño fijo (16 bits).
  • No superposición: Los símbolos de 1 palabra (16 bits) utilizan un subconjunto de valores que no puede utilizarse en símbolos de 2 palabras (32 bits).


Contenido

Historia

UTF-16 es la evolución de UCS-2, presente en el estándar Unicode hasta la versión 1.1. En UCS-2 cada punto de código se representa por su valor, lo que limitaba su uso al plano básico multilingüe. En la versión 2.0 del Estándar Unicode, la decisión de ampliar el espacio de códigos por encima del código FFFF supuso la necesidad de incluir un nuevo formato que diese soporte a los nuevos planos, 15 y 16, de uso privado. Sin embargo, el estándar no definió todavía ningún punto de código haciendo uso de este mecanismo hasta la versión 3.1.[1] [2]

Descripción

En UTF-16 cada punto de código entre 0 y FFFF se codifica, sin cambios, utilizando 16 bits. Este rango se corresponde con el plano básico multilingüe de Unicode, por lo que la gran mayoría de los caracteres de uso común se codifican con 16 bits.

Los caracteres de los planos adicionales, se codifican mediante 32 bits. La codificación no se hace de forma directa, es decir, el código final no es el valor del punto de código. UTF-16 define un formato de transformación para estos casos denominado pares subrogados.

A la hora de valorar el espacio de almacenamiento requerido por un texto utilizando esta codificación, puede asumirse que los caracteres no incluidos en el plano básico son muy poco frecuentes y por lo tanto cada carácter utilizará 16 bits. Esta afirmación es válida también para el caso de las escrituras CJK (chino, japonés y coreano).

Pares subrogados

Ejemplo: Codificación del carácter Unicode U+1D11E, Clave de sol. El carácter está fuera del plano básico (BMP) y por lo tanto requiere el uso de pares subrogados.

Unicode e ISO/IEC han limitado el espacio asignable a los códigos hasta 10FFFF, por lo que se requiere un máximo de 21 bits para la representación de cualquier carácter. Si se usan dos palabras para representar códigos por encima de FFFF, se tiene un exceso de bits. Aprovechando esta circunstancia, se diseñó el sistema de pares subrogados para representar caracteres fuera del plano básico.

Se define un par subrogado como dos palabras de 16 bits donde:

  • La primera palabra de 16 bits se denomina subrogado alto o subrogado inicial en terminología Unicode o elementos RC de la zona media-alta en terminología ISO/IEC. Toman valores en el rango [D800,DBFF].
  • La segunda palabra de 16 bits se denomina subrogado bajo o subrogado final en terminología Unicode o elementos RC de la zona media-baja en terminología ISO/IEC. Toman valores en el rango [DC00,DFFF].
  • Se cumple el principio de no superposición, los conjuntos valores de subrogados altos, bajos y códigos no subrogados son completamente disjuntos.

Para poder cumplir el principio de no superposición, el conjunto de valores utilizados como pares subrogados ha sido estandarizado y reservado, por lo que no puede ser utilizado para otros fines.

El sistema de pares subrogados se añadió en la versión 2.0 de Unicode, ISO 10646:xxxx, y por su diseño minimiza los conflictos que se pudieran presentar con implementaciones anteriores que no hagan uso de ellos.

Errores de codificación

Las normas de codificación establecen, por lo tanto, límites a las cadenas que se pueden formar. Según la norma, un intérprete de cadenas debe rechazar como inválidas, y no tratar de interpretar, las cadenas mal formadas.

  • Un código subrogado inicial siempre debe ir seguido de un código subrogado final.
  • Un código subrogado final siempre debe ir precedido por un código subrogado inicial.
  • No se admite la codificación de caracteres inválidos. Los códigos FFFE, FFFF y los valores de FDD0 a FDEF, no son caracteres reales y no deben codificarse en UTF-16. Tampoco se admiten los valores reservados fuera del plano básico.

Esquemas de codificación y BOM

A partir del formato de transformación UTF-16 se definen 3 esquemas de codificación. A pesar de que comparten nombres, no debe confundirse esquemas y formas de codificación. Los esquemas de codificación tratan de la forma en que se serializa la información codificada.[3] La seguridad en los intercambios de información entre sistemas heterogéneos requiere la implementación de sistemas que permitan determinar el orden correcto de los bits y bytes y garantizar que la reconstrucción de la información es correcta. Una diferencia fundamental entre procesadores es el orden de disposición de los bytes en palabras de 16 y 32 bits, lo que se denomina endianness. Los esquemas de codificación deben garantizar que los extremos de una comunicación saben cómo interpretar la información recibida.

Esquema de codificación Endianness Admite BOM
UTF-16 Big-endian o Little-endian
UTF-16BE Big-endian No
UTF-16LE Little-endian No

Unicode define una marca especial, Byte order mark o BOM, al inicio de un fichero o una comunicación para hacer explícita la ordenación de bytes. Esta marca es el carácter con punto de código U+FEFF. Cuando se encuentra en una posición inicial, puede ser interpretado como BOM dependiendo del contexto de la comunicación. En cualquier otra posición mantiene su semántica original como carácter ZERO WIDTH NON-BREAKING SPACE. Cuando un protocolo superior especifica el orden de bytes, la marca no es nesaria y puede omitirse dando lugar a los esquemas de la lista anterior con sufijo BE o LE. En el caso del esquema UTF-16, que admite BOM, si este no se especifica se asume que la ordenación de bytes es big-endian.

Véase también

Referencias

  1. The Unicode Consortium, Joan Aliprand, et al. (enero de 2000). «Appendix D. Changes from Unicode Version 2.0» (en Inglés). The Unicode Standard. Version 3.0 standard. Addisson-Wesley. ISBN 0-201-61633-5. http://unicode.org/book/appD.pdf. 
  2. The Unicode Consortium (octubre de 2006). «Appendix D. Changes from previous versions». En Julie D. Allen, Joe Becker (et al.) (en Inglés). Unicode 5.0 standard. Addisson-Wesley. ISBN 0-321-48091-0. http://www.unicode.org/versions/Unicode5.0.0/appD.pdf. 
  3. The Unicode Consortium (octubre de 2006). «2.5 Encoding Forms». En Julie D. Allen, Joe Becker (et al.) (en Inglés). Unicode 5.0 standard. Addisson-Wesley. ISBN 0-321-48091-0. http://www.unicode.org/versions/Unicode5.0.0/ch02.pdf. 

Wikimedia foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Mira otros diccionarios:

  • UTF-8 — (8 bit Unicode Transformation Format) es un formato de codificación de caracteres Unicode e ISO 10646 utilizando símbolos de longitud variable. UTF 8 fue creado por Robert C. Pike y Kenneth L. Thompson. Está definido como estándar por la RFC 3629 …   Wikipedia Español

  • UTF-7 — (7 bit Unicode Transformation Format) is a variable length character encoding that was proposed for representing Unicode text using a stream of ASCII characters. It was originally intended to provide a means of encoding Unicode text for use in… …   Wikipedia

  • UTF-8 — (от англ. Unicode Transformation Format, 8 bit  «формат преобразования Юникода, 8 битный»)  распространённая кодировка символов Юникода, совместимая с 8 битными форматами передачи текста. Нашла широкое применение в операционных… …   Википедия

  • UTF-8 — (Abk. für 8 bit UCS Transformation Format wobei UCS wiederum Universal Character Set abkürzt) ist die am weitesten verbreitete Kodierung für Unicode Zeichen (Unicode und UCS sind praktisch identisch). Die Kodierung wurde im September 1992 von Ken …   Deutsch Wikipedia

  • UTF-7 — (7 bit Unicode Transformation Format) es una codificación de caracteres de longitud variable que fue propuesta para representar texto codificado con Unicode usando un flujo de caracteres ASCII, para ser usado, por ejemplo en mensajes de correo… …   Wikipedia Español

  • UTF-8 — (UCS Transformation Format  8 bit[1]) is a multibyte character encoding for Unicode. Like UTF 16 and UTF 32, UTF 8 can represent every character in the Unicode character set. Unlike them, it is backward compatible with ASCII and avoids the… …   Wikipedia

  • UTF-16 — (англ. Unicode Transformation Format) в информатике один из способов кодирования символов из Unicode в виде последовательности 16 битных слов. Данная кодировка позволяет записывать символы Юникода в диапазонах U+0000..U+D7FF и… …   Википедия

  • UTF-16 — est un codage des caractères définis par Unicode où chaque caractère est codé sur une suite de un ou deux mots de 16 bits. Le codage était défini dans le rapport technique 17 à la norme Unicode. Depuis, cette annexe est devenue obsolète car UTF… …   Wikipédia en Français

  • Utf-16 — Unicode Jeux de caractères UCS (ISO/CEI 10646) ISO 646, ASCII ISO 8859 1 WGL4 UniHan Équivalences normalisées NFC (précomposée) NFD (décomposée) NFKC (compatibilité) NFKD (compatibilité) Propriétés et algorithmes ISO 15924 …   Wikipédia en Français

  • Utf-8 — (от англ. Unicode Transformation Format формат преобразования Юникода) в настоящее время распространённая кодировка, реализующая представление Юникода, совместимое с 8 битным кодированием текста. Текст, состоящий только из символов с номером… …   Википедия

  • UTF-8 — (UCS transformation format 8 bits) est un format de codage de caractères. Chaque caractère ou graphème est représenté dans le répertoire du jeu universel de caractères sous la forme d’une suite d’un ou plusieurs « caractères abstraits » …   Wikipédia en Français

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”