UTF-16


UTF-16 ( formato de transformación Unicode de 16 bits ) es una codificación de caracteres capaz de codificar los 1 112 064 puntos de código de caracteres válidos de Unicode (de hecho, este número de puntos de código está dictado por el diseño de UTF-16). La codificación es de longitud variable , ya que los puntos de código se codifican con una o dos unidades de código de 16 bits . UTF-16 surgió de una codificación obsoleta anterior de 16 bits de ancho fijo, ahora conocida como UCS-2 (para el conjunto de caracteres universales de 2 bytes), una vez que quedó claro que se necesitaban más de 2 16 (65 536) puntos de código. [1]

UTF-16 es utilizado por sistemas como la API de Microsoft Windows , el lenguaje de programación Java y JavaScript /ECMAScript. A veces también se usa para archivos de datos de procesamiento de textos y texto sin formato en Microsoft Windows. Rara vez se usa para archivos en sistemas similares a Unix. Desde mayo de 2019, Microsoft ha comenzado a admitir UTF-8 (así como a UTF-16) y fomenta su uso. [2] .

UTF-16 es la única codificación web incompatible con ASCII [3] y nunca ganó popularidad en la web, donde es utilizada por menos del 0,002% (poco más de 1 milésima del 1 por ciento) de las páginas web. [4] UTF-8 , en comparación, representa el 98% de todas las páginas web. [5] El Grupo de trabajo de tecnología de aplicaciones de hipertexto web (WHATWG) considera que UTF-8 es "la codificación obligatoria para todo [texto]" y que, por razones de seguridad, las aplicaciones de navegador no deben usar UTF-16. [6]

A fines de la década de 1980, se comenzó a trabajar en el desarrollo de una codificación uniforme para un "Conjunto de caracteres universal" ( UCS ) que reemplazaría las codificaciones anteriores específicas del idioma con un sistema coordinado. El objetivo era incluir todos los caracteres necesarios de la mayoría de los idiomas del mundo, así como símbolos de dominios técnicos como la ciencia, las matemáticas y la música. La idea original era reemplazar las codificaciones típicas de 256 caracteres, que requerían 1 byte por carácter, con una codificación que usaba 65 536 (2 16 ) valores, lo que requeriría 2 bytes (16 bits) por carácter.

Dos grupos trabajaron en esto en paralelo, ISO/IEC JTC 1/SC 2 y Unicode Consortium , este último representando en su mayoría a fabricantes de equipos informáticos. Los dos grupos intentaron sincronizar sus asignaciones de caracteres para que las codificaciones en desarrollo fueran mutuamente compatibles. La primera codificación de 2 bytes se llamaba originalmente "Unicode", pero ahora se llama "UCS-2". [7]

Cuando se hizo cada vez más claro que 2 16 caracteres no serían suficientes, [1] IEEE introdujo un espacio más grande de 31 bits y una codificación ( UCS-4 ) que requeriría 4 bytes por carácter. El Consorcio Unicode se resistió a esto , tanto porque 4 bytes por carácter desperdiciaban mucha memoria y espacio en disco, como porque algunos fabricantes ya habían invertido mucho en la tecnología de 2 bytes por carácter. El esquema de codificación UTF-16 se desarrolló como un compromiso y se introdujo con la versión 2.0 del estándar Unicode en julio de 1996. [8] Está completamente especificado en RFC 2781, publicado en 2000 por el IETF . [9] [10]