Articulo de referencia

página de códigos de Windows

Las páginas de códigos de Windows son conjuntos de caracteres o páginas de códigos (conocidas como codificaciones de caracteres en otros sistemas operativos) utilizadas en Micro...

Las páginas de códigos de Windows son conjuntos de caracteres o páginas de códigos (conocidas como codificaciones de caracteres en otros sistemas operativos) utilizadas en Microsoft Windows desde las décadas de 1980 y 1990. Las páginas de códigos de Windows fueron reemplazadas gradualmente con la implementación de Unicode en Windows , aunque todavía son compatibles tanto en Windows como en otras plataformas, y siguen aplicándose al usar atajos de teclado con la tecla Alt .

Las versiones actuales de Windows admiten Unicode ; las nuevas aplicaciones de Windows deberían usar Unicode (UTF-8) y no codificaciones de caracteres de 8 bits. [ 1 ]

En los sistemas Windows existen dos grupos de páginas de códigos del sistema: las páginas de códigos OEM y las páginas de códigos nativas de Windows ("ANSI"). (ANSI son las siglas del Instituto Nacional Estadounidense de Estándares ). Las páginas de códigos de ambos grupos son páginas de códigos ASCII extendidas . Las rutinas de conversión estándar de Windows admiten páginas de códigos adicionales, pero estas no se utilizan como páginas de códigos del sistema.

Página de códigos ANSI

Las páginas de códigos ANSI (oficialmente llamadas "páginas de códigos de Windows" [ 2 ] después de que Microsoft aceptara que el término anterior era un nombre inapropiado [ 3 ] ) se utilizan para aplicaciones nativas no Unicode (es decir, orientadas a bytes ) que utilizan una interfaz gráfica de usuario en sistemas Windows. El término "ANSI" es un nombre inapropiado porque estas páginas de códigos de Windows no cumplen con ningún estándar ANSI (Instituto Nacional Estadounidense de Estándares) ; la página de códigos 1252 se basó en un borrador ANSI inicial que se convirtió en el estándar internacional ISO 8859-1 [ 3 ] , que agrega 32 códigos de control adicionales y espacio para 96 ​​caracteres imprimibles. Entre otras diferencias, las páginas de códigos de Windows asignan caracteres imprimibles al espacio suplementario de códigos de control, lo que los hace, en el mejor de los casos, ilegibles para los sistemas operativos que cumplen con los estándares. [ a ]

La mayoría de las páginas de códigos ANSI heredadas tienen números de página de códigos con el patrón 125x. Sin embargo, la página 874 (tailandesa) y las páginas de códigos ANSI multibyte de Asia Oriental ( 932 , 936 , 949 , 950 ), que también se utilizan como páginas de códigos OEM, están numeradas para coincidir con las codificaciones de IBM, ninguna de las cuales es idéntica a las codificaciones de Windows (aunque la mayoría son similares). Si bien la página de códigos 1258 también se utiliza como página de códigos OEM, es original de Microsoft y no una extensión de una codificación existente. IBM ha asignado sus propios números diferentes para las variantes de Microsoft, que se proporcionan como referencia en las listas a continuación cuando corresponda.

Todas las páginas de códigos de Windows 125x, así como la 874 y la 936, están etiquetadas por la Autoridad de Números Asignados de Internet (IANA) como " número de Windows ", aunque "Windows-936" se trata como sinónimo de " GBK ". La página de códigos de Windows 932, en cambio, está etiquetada como "Windows-31J". [ 4 ]

Las páginas de códigos ANSI Windows, y especialmente la página de códigos 1252 , se denominaron así porque supuestamente se basaban en borradores presentados o destinados a ANSI. Sin embargo, ANSI e ISO no han estandarizado ninguna de estas páginas de códigos. En cambio, son: [ 3 ]

Microsoft asignó aproximadamente doce caracteres tipográficos y comerciales (incluido, notablemente, el símbolo del euro , €) en CP1252 a los puntos de código 0x80–0x9F que, en ISO 8859, están asignados a los códigos de control C1 . Estas asignaciones también están presentes en muchas otras páginas de códigos ANSI/Windows en los mismos puntos de código. Windows no utilizaba los códigos de control C1, por lo que esta decisión no tuvo un efecto directo en los usuarios de Windows. Sin embargo, si se incluía en un archivo transferido a una plataforma compatible con estándares como Unix o macOS, la información era invisible y potencialmente perjudicial. [ a ]

Página de códigos OEM

Las páginas de códigos OEM ( fabricante de equipos originales ) son utilizadas por las aplicaciones de consola Win32 y por DOS virtual , y pueden considerarse un vestigio de DOS y de la arquitectura original del IBM PC . Se implementó un conjunto independiente de páginas de códigos no solo por compatibilidad, sino también porque las fuentes del hardware VGA (y sus derivados) sugieren que la codificación de caracteres de dibujo de líneas sea compatible con la página de códigos 437. La mayoría de las páginas de códigos OEM comparten muchos puntos de código, en particular para caracteres que no son letras, con la segunda mitad (no ASCII) de CP437.

Una página de códigos OEM típica, en su segunda mitad, no se parece en nada a ninguna página de códigos ANSI/Windows. Sin embargo, se utilizan dos páginas de códigos de un byte y ancho fijo (874 para tailandés y 1258 para vietnamita ) y cuatro páginas de códigos CJK multibyte ( 932 , 936 , 949 , 950 ) como páginas de códigos OEM y ANSI. La página de códigos 1258 utiliza diacríticos combinativos , ya que el vietnamita requiere más de 128 combinaciones de letras y diacríticos. Esto contrasta con VISCII , que reemplaza algunos de los códigos de control C0 (es decir, ASCII).

Historia

Los primeros sistemas informáticos tenían almacenamiento limitado y restringían la cantidad de bits disponibles para codificar un carácter . Si bien las codificaciones propietarias anteriores tenían menos bits, el Código Estándar Estadounidense para el Intercambio de Información (ASCII) se decantó por siete bits: esto era suficiente para codificar un subconjunto de 96 caracteres utilizados en EE. UU. A medida que los bytes de ocho bits se hicieron predominantes, Microsoft (y otros) ampliaron el repertorio a 224 para abarcar diversos usos, como los símbolos de dibujo de cajas. La necesidad de proporcionar caracteres precompuestos para los mercados de Europa Occidental y Sudamérica requirió un conjunto de caracteres diferente: Microsoft estableció el principio de las páginas de códigos, una para cada alfabeto. Para las escrituras segmentales utilizadas en la mayor parte de África, América, el sur y sureste de Asia, Oriente Medio y Europa, un carácter necesita solo un byte, pero se necesitan dos o más bytes para los conjuntos ideográficos utilizados en el resto del mundo. El modelo de páginas de códigos no pudo abordar este desafío.

Desde finales de la década de 1990, el software y los sistemas han adoptado Unicode como su formato de codificación de caracteres preferido: Unicode está diseñado para manejar millones de caracteres. Todos los productos e interfaces de programación de aplicaciones actuales de Microsoft utilizan Unicode internamente, pero algunas aplicaciones siguen utilizando la codificación predeterminada de la configuración regional del equipo al leer y escribir datos de texto en archivos o en la salida estándar. Por lo tanto, es posible encontrar archivos que sean legibles e inteligibles en una parte del mundo, pero ilegibles en otra.

UTF-8, UTF-16

Microsoft adoptó una codificación Unicode (primero la ahora obsoleta UCS-2 , que entonces era la única codificación de Unicode), es decir, UTF-16 para todos sus sistemas operativos desde Windows NT en adelante, pero además admite UTF-8 (también conocido como CP_UTF8) desde la versión 1803 de Windows 10. [ 5 ] UTF -16 y UCS-2 pueden en teoría codificar todos los puntos de código Unicode en el Plano Multilingüe Básico (BMP) en un solo punto de código de 16 bits pero el Unicode restante (por ejemplo, emojis o algunos caracteres chinos) necesitan más bytes e incluso las letras que están dentro del BMP como é tienen representaciones tanto en UTF-8 como en UTF-16 que requieren múltiples puntos de código. UCS-2, al ser una codificación de un solo punto de código, ni siquiera podía representar todas las letras que solo usan puntos de código dentro del BMP (por ejemplo, ā́ usa múltiples puntos de código y, por lo tanto, no se puede representar en UCS-2). Con el cambio de UCS-2 a UTF-16, perdió su única ventaja, pero ganó la capacidad de representar todo Unicode. El resto de la industria ( sistemas tipo Unix y la web), y ahora Microsoft, optaron por UTF-8 (que es compatible con el conjunto de caracteres ASCII de 7 bits ).

Lista

Existen las siguientes páginas de código de Windows:

Serie Windows-125x

Estas nueve páginas de códigos son codificaciones SBCS ASCII de 8 bits extendidas y fueron diseñadas por Microsoft para usarse como páginas de códigos ANSI en Windows. Se las conoce comúnmente por sus nombres registrados en IANA [ 6 ] como , pero también se las llama a veces , "cp" por "página de códigos". Todas se usan como páginas de códigos ANSI; Windows-1258 también se usa como página de códigos OEM. windows-<number>cp<number>

La serie Windows-125x incluye nueve páginas de códigos ANSI y abarca principalmente alfabetos de Europa y Asia Occidental, con la adición de Vietnam . Las codificaciones del sistema para el tailandés y los idiomas de Asia Oriental se numeraron para que coincidieran con páginas de códigos IBM similares y se utilizan como páginas de códigos ANSI y OEM; estas se tratan en las secciones siguientes.

páginas de código DOS

También se basan en ASCII. La mayoría se incluyen para su uso como páginas de códigos OEM; la página de códigos 874 también se utiliza como página de códigos ANSI.

  • 437 – IBM PC US, ASCII extendido SBCS  de 8 bits . [ 25 ] Conocido como OEM-US, la codificación de la fuente integrada principal de las tarjetas gráficas VGA.
  • 708  – Árabe, ISO 8859-6 ampliado (ASMO 708)
  • 720 – Árabe, conservando los caracteres de dibujo de recuadros en sus ubicaciones habituales.
  • 737  – "Griego de MS-DOS". Conserva todos los caracteres de dibujo de recuadros. Más popular que el 869.
  • 775 – "MS-DOS Baltic Rim"
  • 850  – "MS-DOS Latin 1". Repertorio completo (reorganizado) de ISO 8859-1 .
  • 852  – "MS-DOS Latin 2"
  • 855 – «MS-DOS Cyrillic». Se utiliza principalmente para lenguas eslavas meridionales . Incluye el repertorio (reorganizado) de ISO-8859-5 . No confundir con cp866.
  • 857 – "MS-DOS Turco"
  • 858  – Moneda de Europa Occidental con símbolo de euro.
  • 860 – "MS-DOS Portugués"
  • 861  – "MS-DOS islandés"
  • 862  – "Hebreo MS-DOS"
  • 863  – "MS-DOS Canadá francés"
  • 864  – Árabe
  • 865  – "MS-DOS Nórdico"
  • 866  – "MS-DOS Cirílico Ruso", cp866. Única página de código puramente OEM (en lugar de ANSI o ambos) incluida como codificación heredada en el estándar de codificación WHATWG para HTML5 .
  • 869  – "MS-DOS Greek 2", IBM869. Repertorio completo (reorganizado) de ISO 8859-7 .
  • 874  – Thai , también utilizado como página de códigos ANSI, extiende ISO 8859-11 (y por lo tanto TIS-620 ) con algunos caracteres adicionales de Windows-1252. Corresponde a la página de códigos IBM 1162 (IBM-874 es similar pero tiene extensiones diferentes).

Páginas de códigos multibyte de Asia Oriental

Estas a menudo difieren de las páginas de códigos de IBM del mismo número: las páginas de códigos 932, 949 y 950 solo coinciden parcialmente con las páginas de códigos de IBM del mismo número, mientras que el número 936 fue utilizado por IBM para otra codificación de chino simplificado que ahora está en desuso y Windows-951, como parte de una solución provisional , no tiene relación con IBM-951. Las páginas de códigos equivalentes de IBM se muestran en la segunda columna. Las páginas de códigos 932, 936, 949 y 950/951 se utilizan como páginas de códigos ANSI y OEM en las configuraciones regionales en cuestión.

Las páginas de códigos de Microsoft para chino, japonés y coreano generalmente no se corresponden exactamente, y a veces no se corresponden en absoluto, con las páginas de códigos de IBM del mismo número.

Se admiten algunas páginas de código de varios bytes adicionales para la decodificación o codificación mediante bibliotecas del sistema operativo, pero no se utilizan como ningún tipo de codificación del sistema en ninguna configuración regional.

Páginas de códigos EBCDIC

Páginas de códigos de compatibilidad de Macintosh

Páginas de códigos ISO 8859

Páginas de códigos de la UIT-T

Páginas de códigos KOI8

Problemas derivados del uso de páginas de código

Microsoft recomienda encarecidamente el uso de Unicode en las aplicaciones modernas, pero muchas aplicaciones o archivos de datos todavía dependen de las páginas de códigos antiguas.

  • Los programas necesitan saber qué página de códigos usar para mostrar correctamente el contenido de los archivos (anteriores a Unicode). Si un programa usa la página de códigos incorrecta, puede mostrar el texto como caracteres ilegibles .
  • La página de códigos utilizada puede variar entre máquinas, por lo que los archivos (anteriores a Unicode) creados en una máquina pueden resultar ilegibles en otra.
  • Con frecuencia, los datos no están etiquetados correctamente con la página de códigos, o no están etiquetados en absoluto, lo que dificulta determinar la página de códigos correcta para leer los datos.
  • Estas páginas de código de Microsoft difieren en diversos grados de algunos estándares y de las implementaciones de otros proveedores. Esto no es un problema exclusivo de Microsoft , ya que ocurre con todos los proveedores, pero la falta de coherencia dificulta la interoperabilidad con otros sistemas en algunos casos.
  • El uso de páginas de códigos limita el conjunto de caracteres que se pueden utilizar.
  • Los caracteres expresados ​​en una página de códigos no compatible pueden convertirse en signos de interrogación (?) u otros caracteres de reemplazo , o en una versión más simple (como eliminar los acentos de una letra). En ambos casos, el carácter original puede perderse.

Notas

  1. ^ a b Los sistemas que cumplen con los estándares deben interpretar los datos presentes en estos puntos de código como instrucciones de control. En cualquier caso, no se identificarían como caracteres imprimibles.

Referencias

  1. ^ "Unicode y conjuntos de caracteres" . Microsoft. 13 de junio de 2023. Consultado el 27 de mayo de 2024 .
  2. ^ "Páginas de código" . 7 de marzo de 2016. Archivado del original el 7 de marzo de 2016. Consultado el 26 de mayo de 2021 .
  3. ^ a b c "Glosario de términos utilizados en este sitio" . 8 de diciembre de 2018. Archivado del original el 8 de diciembre de 2018. El término "ANSI", utilizado para referirse a las páginas de códigos de Windows, es una referencia histórica, pero hoy en día es un término erróneo que persiste en la comunidad de Windows. Esto se debe a que la página de códigos 1252 de Windows se basó originalmente en un borrador de ANSI, que se convirtió en la norma ISO 8859-1. Las "aplicaciones ANSI" suelen referirse a aplicaciones que no utilizan Unicode o que no se basan en páginas de códigos.
  4. ^ "Conjuntos de caracteres" . www.iana.org . Archivado del original el 25/05/2021 . Consultado el 26/05/2021 .
  5. ^ hylom (14 de noviembre de 2017). "Windows 10のInsider PreviewでシステムロケールをUTF-8にするオプションが追加される" [La opción para hacer que UTF-8 sea la configuración regional del sistema agregada en Windows 10 Insider Vista previa].ス ラ ド(en japonés). Archivado desde el original el 11 de mayo de 2018 . Consultado el 10 de mayo de 2018 .
  6. ^ "Conjuntos de caracteres" . IANA. Archivado del original el 3 de diciembre de 2016. Consultado el 7 de abril de 2019 .
  7. ^ Microsoft. "Windows 1250" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  8. ^ IBM. "Documento informativo de la página de códigos SBCS CPGID 01250" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  9. ^ Microsoft. "Windows 1251" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  10. ^ IBM. "Documento informativo de la página de códigos SBCS CPGID 01251" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  11. ^ Microsoft. "Windows 1252" . Archivado del original el 4 de mayo de 2013. Consultado el 6 de julio de 2014 .
  12. ^ IBM. "Documento informativo de la página de códigos SBCS CPGID 01252" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  13. ^ Microsoft. "Windows 1253" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  14. ^ IBM. "Documento informativo de la página de códigos SBCS CPGID 01253" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  15. ^ Microsoft. "Windows 1254" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  16. ^ IBM. "Documento informativo de la página de códigos SBCS CPGID 01254" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  17. ^ Microsoft. "Windows 1255" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  18. ^ IBM. "Documento informativo de la página de códigos SBCS CPGID 01255" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  19. ^ Microsoft. "Windows 1256" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  20. ^ IBM. "Documento informativo de la página de códigos SBCS CPGID 01256" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  21. ^ Microsoft. "Windows 1257" . Archivado del original el 16 de marzo de 2013. Consultado el 6 de julio de 2014 .
  22. ^ IBM. "Documento informativo de la página de códigos SBCS CPGID 01257" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  23. ^ Microsoft. "Windows 1258" . Archivado del original el 25/10/2013 . Consultado el 06/07/2014 .
  24. ^ IBM. "Documento informativo de la página de códigos SBCS CPGID 01258" . Archivado del original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
  25. ^ IBM. "Documento informativo de la página de códigos SBCS - CPGID 00437" . Archivado del original el 9 de junio de 2016. Consultado el 4 de julio de 2014 .
  26. ^ "IBM-943 e IBM-932" . Centro de conocimiento de IBM . IBM. Archivado del original el 18 de agosto de 2018. Consultado el 8 de julio de 2020 .
  27. ^ "Explorador de convertidores: ibm-1373_P100-2002" . Demostración de ICU . Componentes internacionales para Unicode . Archivado del original el 26 de mayo de 2021. Consultado el 27 de junio de 2020 .
  28. ^ "Identificadores de conjuntos de caracteres codificados – CCSID 5471" . Globalización de IBM . IBM . Archivado del original el 29/11/2014.
  29. ^ Julliard, Alexandre (11 de marzo de 2021). "dump_krwansung_codepage: crea la tabla Wansung coreana a partir del archivo KSX1001" . make_unicode: genera archivos .c de página de códigos a partir de las descripciones de ftp.unicode.org . Wine Project . Archivado del original el 26 de mayo de 2021. Recuperado el 14 de marzo de 2021 .
  30. ^ IBM. "Documento informativo de la página de códigos SBCS - CPGID 00037" . Archivado del original el 14 de julio de 2014. Consultado el 4 de julio de 2014 .
  31. ^ Steele, Shawn (12 de septiembre de 2005). "Página de código 21027 "Alfabeto extendido/ext minúsculas"" . MSDN . Archivado del original el 06-04-2019 . Recuperado el 06-04-2019 .
  32. ^ a b c d e "Identificadores de página de códigos" . docs.microsoft.com . Archivado del original el 7 de abril de 2019. Consultado el 7 de abril de 2019 .
  33. ^ a b c Fundación Mozilla . "Relación con las páginas de código de Windows" . Crate encoding_rs . Docs.rs.
  34. ^ a b c d e "Identificadores de página de códigos" . Microsoft Developer Network . Microsoft . 2014. Archivado del original el 19 de junio de 2016. Recuperado el 19 de junio de 2016 .
  35. ^ a b c d e "Codificaciones web - Internet Explorer - Codificaciones" . Wiki de WHATWG . 23 de octubre de 2012. Archivado del original el 20 de junio de 2016. Consultado el 20 de junio de 2016 .
  36. ^ Foller, Antonin (2014) [2011]. "Codificación de Europa Occidental (IA5) - Conjuntos de caracteres de Windows" . WUtils.com - Utilidad web y ayuda en línea . Motobit Software. Archivado del original el 20 de junio de 2016. Recuperado el 20 de junio de 2016 .
  37. ^ Foller, Antonin (2014) [2011]. "Codificación alemana (IA5) – Conjuntos de caracteres de Windows" . WUtils.com – Utilidad web y ayuda en línea . Motobit Software. Archivado del original el 20 de junio de 2016. Recuperado el 20 de junio de 2016 .
  38. ^ Foller, Antonin (2014) [2011]. "Codificación sueca (IA5) - Conjuntos de caracteres de Windows" . WUtils.com - Utilidad web y ayuda en línea . Motobit Software. Archivado del original el 20 de junio de 2016. Recuperado el 20 de junio de 2016 .
  39. ^ Foller, Antonin (2014) [2011]. "Codificación noruega (IA5) - Conjuntos de caracteres de Windows" . WUtils.com - Utilidad web y ayuda en línea . Motobit Software. Archivado del original el 20 de junio de 2016. Recuperado el 20 de junio de 2016 .
  40. ^ Foller, Antonin (2014) [2011]. "Codificación US-ASCII - Conjuntos de caracteres de Windows" . WUtils.com - Utilidad web y ayuda en línea . Motobit Software. Archivado del original el 20 de junio de 2016. Recuperado el 20 de junio de 2016 .
  41. ^ Nechayev, Valentin (2013) [2001]. "Revisión del universo de codificaciones cirílicas de 8 bits" . Archivado del original el 5 de diciembre de 2016. Recuperado el 5 de diciembre de 2016 .
  • Referencia de la API de soporte de idiomas nacionales (NLS) . Tabla que muestra las páginas de códigos ANSI y OEM por idioma (del archivo web, ya que Microsoft eliminó la página original).
  • Registros de nombres de conjuntos de caracteres de IANA
  • Tabla de asignación Unicode para las páginas de códigos de Windows
  • Asignaciones Unicode de páginas de códigos de Windows con "ajuste óptimo"
Obtenido de " https://en.wikipedia.org/w/index.php?title=Windows_code_page&oldid=1350687883 "