fbpx
Wikipedia

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. Está oficialmente definida 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 del plano básico multilingüe (BMP) y caracteres del 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).

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 U+0000 y U+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 puntos de código U+FFFE, U+FFFF, y el rango U+FDD0 a U+FDEF son puntos de códigos especiales que no representan caracteres 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 (Marca de orden de bytes), 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 necesaria 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). . The Unicode Standard. Version 3.0 standard (en inglés). Addisson-Wesley. ISBN 0-201-61633-5. Archivado desde el original el 17 de noviembre de 2008. Consultado el 28 de julio de 2009. 
  2. The Unicode Consortium (octubre de 2006). «Appendix D. Changes from previous versions». En Julie D. Allen, Joe Becker (et al.), ed. Unicode 5.0 standard (en inglés). Addisson-Wesley. ISBN 0-321-48091-0. 
  3. The Unicode Consortium (octubre de 2006). «2.5 Encoding Forms». En Julie D. Allen, Joe Becker (et al.), ed. Unicode 5.0 standard (en inglés). Addisson-Wesley. ISBN 0-321-48091-0. 
  •   Datos: Q740701

significa, 10646, 2003, transformation, format, planes, group, forma, codificación, caracteres, unicode, utilizando, símbolos, longitud, variable, está, oficialmente, definida, anexo, norma, 10646, 2003, también, está, descrita, estándar, unicode, versión, sup. UTF 16 que significa en ISO IEC 10646 2003 UCS Transformation Format for 16 Planes of Group 00 es una forma de codificacion de caracteres UCS y Unicode utilizando simbolos de longitud variable Esta oficialmente definida en el Anexo C de la norma ISO IEC 10646 2003 Tambien esta descrita en el Estandar Unicode version 3 0 o superior al igual que en la RFC 2781 de la IETF Sus caracteristicas principales son Es capaz de representar cualquier caracter Unicode Utiliza simbolos de longitud variable 1 o 2 palabras de 16 bits por caracter Unicode 2 o 4 bytes La unidad de informacion es la palabra de 16 bits Esta optimizado para representar caracteres del plano basico multilingue BMP y caracteres del rango U 0000 a U FFFF El BMP contiene la gran mayoria de caracteres y sistemas de escritura en uso en la actualidad Cuando se limita al plano basico multilingue UTF 16 puede ser considerado una forma de codificacion con simbolos de tamano fijo 16 bits No superposicion Los simbolos de 1 palabra 16 bits utilizan un subconjunto de valores que no puede utilizarse en simbolos de 2 palabras 32 bits Indice 1 Historia 2 Descripcion 2 1 Pares subrogados 2 2 Errores de codificacion 2 3 Esquemas de codificacion y BOM 3 Vease tambien 4 ReferenciasHistoria EditarUTF 16 es la evolucion de UCS 2 presente en el estandar Unicode hasta la version 1 1 En UCS 2 cada punto de codigo se representa por su valor lo que limitaba su uso al plano basico multilingue En la version 2 0 del Estandar Unicode la decision de ampliar el espacio de codigos por encima del codigo 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 estandar no definio todavia ningun punto de codigo haciendo uso de este mecanismo hasta la version 3 1 1 2 Descripcion EditarEn UTF 16 cada punto de codigo entre U 0000 y U FFFF se codifica sin cambios utilizando 16 bits Este rango se corresponde con el plano basico multilingue de Unicode por lo que la gran mayoria de los caracteres de uso comun se codifican con 16 bits Los caracteres de los planos adicionales se codifican mediante 32 bits La codificacion no se hace de forma directa es decir el codigo final no es el valor del punto de codigo UTF 16 define un formato de transformacion para estos casos denominado pares subrogados A la hora de valorar el espacio de almacenamiento requerido por un texto utilizando esta codificacion puede asumirse que los caracteres no incluidos en el plano basico son muy poco frecuentes y por lo tanto cada caracter utilizara 16 bits Esta afirmacion es valida tambien para el caso de las escrituras CJK chino japones y coreano Pares subrogados Editar Ejemplo Codificacion del caracter Unicode U 1D11E Clave de sol El caracter esta fuera del plano basico BMP y por lo tanto requiere el uso de pares subrogados Unicode e ISO IEC han limitado el espacio asignable a los codigos hasta 10FFFF por lo que se requiere un maximo de 21 bits para la representacion de cualquier caracter Si se usan dos palabras para representar codigos por encima de FFFF se tiene un exceso de bits Aprovechando esta circunstancia se diseno el sistema de pares subrogados para representar caracteres fuera del plano basico 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 terminologia Unicode o elementos RC de la zona media alta en terminologia ISO IEC Toman valores en el rango D800 DBFF La segunda palabra de 16 bits se denomina subrogado bajo o subrogado final en terminologia Unicode o elementos RC de la zona media baja en terminologia ISO IEC Toman valores en el rango DC00 DFFF Se cumple el principio de no superposicion los conjuntos valores de subrogados altos bajos y codigos no subrogados son completamente disjuntos Para poder cumplir el principio de no superposicion 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 anadio en la version 2 0 de Unicode ISO 10646 xxxx y por su diseno minimiza los conflictos que se pudieran presentar con implementaciones anteriores que no hagan uso de ellos Errores de codificacion Editar Las normas de codificacion establecen por lo tanto limites a las cadenas que se pueden formar Segun la norma un interprete de cadenas debe rechazar como invalidas y no tratar de interpretar las cadenas mal formadas Un codigo subrogado inicial siempre debe ir seguido de un codigo subrogado final Un codigo subrogado final siempre debe ir precedido por un codigo subrogado inicial No se admite la codificacion de caracteres invalidos Los puntos de codigo U FFFE U FFFF y el rango U FDD0 a U FDEF son puntos de codigos especiales que no representan caracteres y no deben codificarse en UTF 16 Tampoco se admiten los valores reservados fuera del plano basico Esquemas de codificacion y BOM Editar A partir del formato de transformacion UTF 16 se definen 3 esquemas de codificacion A pesar de que comparten nombres no debe confundirse esquemas y formas de codificacion Los esquemas de codificacion tratan de la forma en que se serializa la informacion codificada 3 La seguridad en los intercambios de informacion entre sistemas heterogeneos requiere la implementacion de sistemas que permitan determinar el orden correcto de los bits y bytes y garantizar que la reconstruccion de la informacion es correcta Una diferencia fundamental entre procesadores es el orden de disposicion de los bytes en palabras de 16 y 32 bits lo que se denomina endianness Los esquemas de codificacion deben garantizar que los extremos de una comunicacion saben como interpretar la informacion recibida Esquema de codificacion Endianness Admite BOMUTF 16 Big endian o Little endian SiUTF 16BE Big endian NoUTF 16LE Little endian NoUnicode define una marca especial Byte order mark o BOM Marca de orden de bytes al inicio de un fichero o una comunicacion para hacer explicita la ordenacion de bytes Esta marca es el caracter con punto de codigo U FEFF Cuando se encuentra en una posicion inicial puede ser interpretado como BOM dependiendo del contexto de la comunicacion En cualquier otra posicion mantiene su semantica original como caracter ZERO WIDTH NON BREAKING SPACE Cuando un protocolo superior especifica el orden de bytes la marca no es necesaria 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 ordenacion de bytes es big endian Vease tambien EditarUnicode UTF 8Referencias Editar The Unicode Consortium Joan Aliprand et al enero de 2000 Appendix D Changes from Unicode Version 2 0 The Unicode Standard Version 3 0 standard en ingles Addisson Wesley ISBN 0 201 61633 5 Archivado desde el original el 17 de noviembre de 2008 Consultado el 28 de julio de 2009 The Unicode Consortium octubre de 2006 Appendix D Changes from previous versions En Julie D Allen Joe Becker et al ed Unicode 5 0 standard en ingles Addisson Wesley ISBN 0 321 48091 0 The Unicode Consortium octubre de 2006 2 5 Encoding Forms En Julie D Allen Joe Becker et al ed Unicode 5 0 standard en ingles Addisson Wesley ISBN 0 321 48091 0 Datos Q740701Obtenido de https es wikipedia org w index php title UTF 16 amp oldid 133964803, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos