Unicode en Windows

Una de las primeras empresas en implementar Unicode de forma coherente fue Microsoft  : Windows NT fue el primer sistema operativo en utilizar Unicode en las llamadas al sistema. Se eligió una representación de caracteres de dos bytes ( UCS-2 ); a partir de Windows 2000 , es posible representar caracteres planos adicionales utilizando pares sustitutos UTF-16 .

La transición a Unicode fue por fases [1] :

Los sistemas operativos Windows XP y Windows Server 2003 , al igual que sus predecesores Windows NT 4 y Windows 2000 , vienen con bibliotecas de sistema que incluyen funciones de ambos tipos: Unicode y diseñadas para trabajar con cadenas en la página de códigos del sistema actual , llamada convencionalmente página ANSI. En este caso, el sufijo W se usa para llamar a funciones Unicode (de la palabra wide "wide", por ejemplo, ), y la letra AlstrlenW() se usa para llamar a funciones ANSI (por ejemplo, ). Como resultado, tanto los programas que pueden usar Unicode como los programas más antiguos que no pueden trabajar simultáneamente con caracteres de diferentes idiomas se ejecutan en la familia de Windows NT . La mayoría de las funciones ANSI se implementan como contenedores sobre las funciones Unicode correspondientes. Solo puede usar símbolos compatibles con estos programas. lstrlenA()

Windows CE ha utilizado solo UTF-16 desde las primeras versiones, excepto en un pequeño número de casos .

En 2001, Microsoft lanzó un complemento especial para sus antiguos sistemas operativos Windows 95 , Windows 98 y Windows Me . El complemento se denomina  capa Unicode ( Microsoft Layer for Unicode , MSLU ) y proporciona compatibilidad con Unicode en las plataformas anteriores especificadas. Este complemento incluye una biblioteca dinámica unicows.dll (solo 240 KB ) que contiene versiones Unicode (aquellas con la letra W al final) de todas las funciones principales de la API de Windows . Como resultado, fue posible ejecutar programas Unicode antiguos y nuevos en sistemas operativos Windows más antiguos.

Windows NT incluye la función IsTextUnicode , que intenta determinar estadísticamente si una cadena que se le pasa contiene texto Unicode. Para textos muy cortos, esta función suele dar un resultado incorrecto. Por ejemplo, esta función es utilizada por el editor de texto estándar de Windows NT: el Bloc de notas al abrir archivos de texto, lo que dio lugar a leyendas sobre la existencia de " Huevos de Pascua " del siguiente tipo en él:

Bill Gates es el más inteligente 쌠

Más efectivas son las frases que consisten completamente en letras latinas (por ejemplo, "esta aplicación puede fallar"), porque en este caso, si la codificación se reconoce incorrectamente, se mostrará la línea completa de krakozyabr . [2] .

Véase también

Notas

  1. Desikan, S. y Ramesh, G. Pruebas de software: principios y práctica. - Pearson Education Canada, 2006. - ISBN 9788177581218 .
  2. Tim Lesher. esta API puede romperse  (inglés)  (enlace descendente) . Tubos del mercado de accesorios (14 de junio de 2006). Fecha de acceso: 29 de febrero de 2008. Archivado desde el original el 22 de octubre de 2007.

Enlaces