Las versiones actuales de Windows admiten Unicode , las nuevas aplicaciones de Windows deben utilizar Unicode (UTF-8) y no codificaciones de caracteres de 8 bits. [1]
Existen dos grupos de páginas de códigos de sistema en los sistemas Windows: páginas de códigos OEM y nativas de Windows ("ANSI"). (ANSI es el American National Standards Institute ). 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 no se utilizan como ningún tipo de página de códigos de 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 (por ejemplo, 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 (American National Standards Institute) ; la página de códigos 1252 se basó en un borrador ANSI temprano 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 de código de control suplementario, lo que las hace, en el mejor de los casos, ilegibles para los sistemas operativos que cumplen con los estándares.)
La mayoría de las páginas de códigos "ANSI" heredadas tienen números de página de códigos en el patrón 125x. Sin embargo, la 874 (Tailandia) 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 en lugar de una extensión de una codificación existente. IBM ha asignado sus propios números diferentes para las variantes de Microsoft; estos se proporcionan como referencia en las listas a continuación cuando corresponda.
Todas las páginas de códigos de Windows 125x, así como las páginas 874 y 936, están etiquetadas por la Autoridad de Números Asignados de Internet (IANA) como " número Windows ", aunque "Windows-936" se considera un sinónimo de " GBK ". La página de códigos de Windows 932 está etiquetada como "Windows-31J". [4]
Las páginas de códigos ANSI de Windows, y especialmente la página de códigos 1252 , se denominaron así porque supuestamente se basaban en borradores enviados o destinados a ANSI. Sin embargo, ANSI e ISO no han estandarizado ninguna de estas páginas de códigos. En cambio, son: [3]
Superconjuntos de conjuntos estándar como los de ISO 8859 y los diversos estándares nacionales (como Windows-1252 vs. ISO-8859-1 ),
Modificaciones importantes de estos (haciéndolos incompatibles en diversos grados, como Windows-1250 vs. ISO-8859-2 )
Microsoft asignó alrededor de doce de los caracteres tipográficos y comerciales (incluido, en particular, 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 utilizó 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 disruptiva. [ cita requerida ]
Una página de códigos OEM típica, en su segunda mitad, no se parece a ninguna página de códigos ANSI/Windows ni siquiera de forma aproximada. Sin embargo, se utilizan dos páginas de códigos de un solo 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 combinados , 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).
Desde finales de los años 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 y las interfaces de programas de aplicación actuales de Microsoft utilizan Unicode internamente, [ cita requerida ] pero algunas aplicaciones siguen utilizando la codificación predeterminada [ aclaración necesaria ] de la "configuración regional" de la computadora al leer y escribir datos de texto en archivos o en la salida estándar. [ cita requerida ] Por lo tanto, aún se pueden encontrar archivos que sean legibles e inteligibles en una parte del mundo, pero ininteligibles 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 Windows 10 versión 1803. [ 5]
UTF-16 codifica de forma única todos los caracteres Unicode en el Plano Multilingüe Básico (BMP) utilizando 16 bits, pero el Unicode restante (por ejemplo, emojis ) se codifica con un código de 32 bits (cuatro bytes), mientras que el resto de la industria ( sistemas tipo Unix y la web), y ahora Microsoft eligió UTF-8 (que usa un byte para el conjunto de caracteres ASCII de 7 bits , dos o tres bytes para otros caracteres en el BMP y cuatro bytes para el resto).
Lista
Existen las siguientes páginas de códigos de Windows:
Serie Windows-125x
Estas nueve páginas de códigos son todas codificaciones SBCS ASCII de 8 bits extendidas y fueron diseñadas por Microsoft para su uso como páginas de códigos ANSI en Windows. Se las conoce comúnmente por sus nombres registrados por la IANA [6] como , pero también se las denomina a veces , "cp" de "página de códigos". Todas se utilizan como páginas de códigos ANSI; Windows-1258 también se utiliza como página de códigos OEM.windows-<number>cp<number>
La serie Windows-125x incluye nueve de las páginas de códigos ANSI y cubre principalmente los alfabetos de Europa y Asia occidental , además del de Vietnam . Las codificaciones del sistema para los idiomas tailandés y del este de Asia se numeraron para que coincidieran con las páginas de códigos de IBM similares y se utilizan como páginas de códigos ANSI y OEM; se tratan en las siguientes secciones.
Páginas de códigos DOS
Estos también están basados en ASCII. La mayoría de ellos 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] Conocida como OEM-US, la codificación de la fuente incorporada principal de las tarjetas gráficas VGA.
720 – Árabe, conservando los caracteres del dibujo del cuadro en sus ubicaciones habituales
737 – “Griego MS-DOS”. Conserva todos los caracteres de dibujo de cuadros. Más popular que 869.
775 – «Borde Báltico MS-DOS»
850 – “MS-DOS Latin 1”. Repertorio completo (reorganizado) de ISO 8859-1 .
852 – “MS-DOS Latín 2”
855 – “Cirílico MS-DOS”. Se utiliza principalmente para las lenguas eslavas del sur . Incluye el repertorio (reorganizado) de ISO-8859-5 . No debe confundirse con cp866.
857 – “MS-DOS Turco”
858 – Europa occidental con el símbolo del euro
860 – “Portugués MS-DOS”
861 – “MS-DOS islandés”
862 – “MS-DOS hebreo”
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ódigos 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, amplía la norma 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
Estos a menudo difieren de las páginas de códigos 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 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 chapuza , no está relacionado con IBM-951. Las páginas de códigos equivalentes de IBM se dan 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.
Se admiten algunas páginas de códigos de varios bytes adicionales para decodificar o codificar 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 relacionados con Unicode
Páginas de códigos de compatibilidad con Macintosh
Páginas de códigos ISO 8859
Páginas de códigos UIT-T
Páginas de códigos KOI8
Problemas derivados del uso de páginas de códigos
Microsoft recomienda encarecidamente utilizar Unicode en aplicaciones modernas, pero muchas aplicaciones o archivos de datos aún dependen de las páginas de códigos heredadas.
Los programas necesitan saber qué página de códigos utilizar para mostrar correctamente el contenido de los archivos (pre-Unicode). Si un programa utiliza la página de códigos incorrecta, puede mostrar el texto como mojibake .
La página de códigos en uso puede diferir entre máquinas, por lo que los archivos (pre-Unicode) creados en una máquina pueden ser ilegibles en otra.
A menudo, los datos están etiquetados incorrectamente con la página de códigos o no están etiquetados en absoluto, lo que dificulta la determinación de la página de códigos correcta para leer los datos.
Estas páginas de códigos de Microsoft difieren en diversos grados de algunos estándares y de las implementaciones de otros proveedores. Esto no es un problema de Microsoft en sí , ya que les sucede a todos los proveedores, pero la falta de coherencia hace que la interoperabilidad con otros sistemas sea poco fiable 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 cualquier caso, el carácter original puede perderse.
Véase también
AppLocale : una utilidad para ejecutar aplicaciones no Unicode (basadas en páginas de códigos) en la configuración regional que elija el usuario.
Referencias
^ "Unicode y conjuntos de caracteres". Microsoft. 2023-06-13 . Consultado el 2024-05-27 .
^ "Páginas de códigos". 7 de marzo de 2016. Archivado desde el original el 7 de marzo de 2016. Consultado el 26 de mayo de 2021 .
^ abc "Glosario de términos utilizados en este sitio". 8 de diciembre de 2018. Archivado desde el 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 nombre inapropiado que sigue persistiendo en la comunidad de Windows. La fuente de esto proviene del hecho de que la página de códigos 1252 de Windows se basó originalmente en un borrador ANSI, que se convirtió en la Norma 8859-1 de la Organización Internacional de Normalización (ISO). Las "aplicaciones ANSI" suelen ser una referencia a aplicaciones que no son Unicode o que se basan en páginas de códigos.
^ "Conjuntos de caracteres". www.iana.org . Archivado desde el original el 25 de mayo de 2021 . Consultado el 26 de mayo de 2021 .
^ 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 Preview].スラド(en japonés). Archivado desde el original el 11 de mayo de 2018 . Consultado el 10 de mayo de 2018 .
^ "Conjuntos de caracteres". IANA. Archivado desde el original el 2016-12-03 . Consultado el 2019-04-07 .
^ Microsoft. «Windows 1250». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ IBM. «Documento de información de la página de códigos SBCS CPGID 01250». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ Microsoft. «Windows 1251». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ IBM. «Documento de información de la página de códigos SBCS CPGID 01251». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ Microsoft. «Windows 1252». Archivado desde el original el 4 de mayo de 2013. Consultado el 6 de julio de 2014 .
^ IBM. «Documento de información de la página de códigos SBCS CPGID 01252». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ Microsoft. «Windows 1253». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ IBM. «Documento de información de la página de códigos SBCS CPGID 01253». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ Microsoft. «Windows 1254». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ IBM. «Documento de información de la página de códigos SBCS CPGID 01254». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ Microsoft. «Windows 1255». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ IBM. «Documento de información de la página de códigos SBCS CPGID 01255». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ Microsoft. «Windows 1256». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ IBM. «Documento de información de la página de códigos SBCS CPGID 01256». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ Microsoft. «Windows 1257». Archivado desde el original el 16 de marzo de 2013. Consultado el 6 de julio de 2014 .
^ IBM. «Documento de información de la página de códigos SBCS CPGID 01257». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ Microsoft. «Windows 1258». Archivado desde el original el 25 de octubre de 2013. Consultado el 6 de julio de 2014 .
^ IBM. «Documento de información de la página de códigos SBCS CPGID 01258». Archivado desde el original el 14 de julio de 2014. Consultado el 6 de julio de 2014 .
^ IBM. «Documento de información de la página de códigos SBCS - CPGID 00437». Archivado desde el original el 9 de junio de 2016. Consultado el 4 de julio de 2014 .
^ "IBM-943 e IBM-932". IBM Knowledge Center . IBM. Archivado desde el original el 2018-08-18 . Consultado el 2020-07-08 .
^ "Explorador de convertidores: ibm-1373_P100-2002". Demostración de la UCI . Componentes internacionales para Unicode . Archivado desde el original el 26 de mayo de 2021 . Consultado el 27 de junio de 2020 .
^ "Identificadores de conjuntos de caracteres codificados – CCSID 5471". IBM Globalization . IBM . Archivado desde el original el 29 de noviembre de 2014.
^ 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áginas de códigos a partir de las descripciones de ftp.unicode.org . Proyecto Wine . Archivado desde el original el 26 de mayo de 2021 . Consultado el 14 de marzo de 2021 .
^ IBM. «Documento de información de la página de códigos SBCS - CPGID 00037». Archivado desde el original el 14 de julio de 2014. Consultado el 4 de julio de 2014 .
^ Steele, Shawn (12 de septiembre de 2005). «Página de códigos 21027 «Alfa extendida/externa minúscula»». MSDN . Archivado desde el original el 6 de abril de 2019 . Consultado el 6 de abril de 2019 .
^ abcde «Identificadores de páginas de códigos». docs.microsoft.com . Archivado desde el original el 7 de abril de 2019 . Consultado el 7 de abril de 2019 .
^ abc Mozilla Foundation . "Relación con las páginas de códigos de Windows". Crate encoding_rs . Docs.rs.
^ abcde «Identificadores de páginas de códigos». Microsoft Developer Network . Microsoft . 2014. Archivado desde el original el 19 de junio de 2016. Consultado el 19 de junio de 2016 .
^ abcde "Codificaciones web - Internet Explorer - Codificaciones". Wiki WHATWG . 23 de octubre de 2012. Archivado desde el original el 20 de junio de 2016. Consultado el 20 de junio de 2016 .
^ Foller, Antonin (2014) [2011]. "Codificación de Europa occidental (IA5) - Conjuntos de caracteres de Windows". WUtils.com - Utilidad web en línea y ayuda . Motobit Software. Archivado desde el original el 20 de junio de 2016. Consultado el 20 de junio de 2016 .
^ Foller, Antonin (2014) [2011]. «Codificación alemana (IA5) – Conjuntos de caracteres de Windows». WUtils.com – Utilidad web en línea y ayuda . Motobit Software. Archivado desde el original el 20 de junio de 2016. Consultado el 20 de junio de 2016 .
^ Foller, Antonin (2014) [2011]. "Codificación sueca (IA5) - Conjuntos de caracteres de Windows". WUtils.com - Utilidad web en línea y ayuda . Motobit Software. Archivado desde el original el 20 de junio de 2016. Consultado el 20 de junio de 2016 .
^ Foller, Antonin (2014) [2011]. "Codificación noruega (IA5) - Conjuntos de caracteres de Windows". WUtils.com - Utilidad web en línea y ayuda . Motobit Software. Archivado desde el original el 20 de junio de 2016. Consultado el 20 de junio de 2016 .
^ Foller, Antonin (2014) [2011]. "Codificación US-ASCII - Conjuntos de caracteres de Windows". WUtils.com - Utilidad web en línea y ayuda . Motobit Software. Archivado desde el original el 20 de junio de 2016. Consultado el 20 de junio de 2016 .
^ Nechayev, Valentin (2013) [2001]. «Revisión del universo de codificaciones cirílicas de 8 bits». Archivado desde el original el 5 de diciembre de 2016. Consultado el 5 de diciembre de 2016 .
Enlaces externos
Referencia de API de compatibilidad con 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 la IANA
Tabla de mapeo Unicode para páginas de códigos de Windows
Asignaciones Unicode de páginas de códigos de Windows con "mejor ajuste"