stringtranslate.com

Página de códigos 932 (Microsoft Windows)

La página de códigos 932 de Microsoft Windows (abreviada MS932 , [2] [3] Windows-932 [3] o ambiguamente CP932 [4] ), también llamada Windows-31J entre otros nombres (ver § Terminología a continuación), es la página de códigos de Microsoft Windows para el idioma japonés , que es una variante extendida de la codificación de caracteres japoneses Shift JIS . Contiene códigos ASCII estándar de 7 bits , y los caracteres japoneses se indican mediante el bit alto del primer byte establecido en 1. Algunos puntos de código en esta página requieren un segundo byte, por lo que los caracteres usan 8 o 16 bits para la codificación.

IBM ofrece los mismos códigos de doble byte extendidos en su página de códigos 943 ( IBM-943 o CP943 ), [5] que es una combinación de la página de códigos 897 de un solo byte y la página de códigos 941 de doble byte . [6]

Windows-31J es la codificación japonesa no UTF-8 /Unicode más utilizada en la web. Sin embargo, muchas personas y paquetes de software, incluidas las bibliotecas de Microsoft, [7] declaran la codificación Shift JIS para los datos de Windows-31J, aunque incluye algunos caracteres adicionales y algunos de los caracteres existentes se asignan a Unicode de forma diferente. Esto ha llevado al estándar HTML WHATWG a tratar las etiquetas de codificación shift_jisde windows-31jforma intercambiable y a utilizar la variante de Windows para su codificador y decodificador "Shift_JIS". [1]

Terminología

La variante Shift JIS de Microsoft se conoce simplemente como "Página de códigos 932" en Microsoft Windows, sin embargo esto es ambiguo ya que la página de códigos 932 de IBM , si bien también es una variante Shift JIS, carece de las extensiones de proveedor de doble byte de NEC y seleccionadas por NEC que están presentes en la variante de Microsoft (aunque ambas incluyen las extensiones de IBM) y conserva el ordenamiento de 1978 de JIS X 0208. [5]

La página de códigos 943 de IBM (o "IBM-943") incluye los mismos códigos de doble byte que la página de códigos 932 de Windows. [5] La versión de Microsoft se corresponde estrechamente con la codificación denominada ibm-943_P15A-2003 (con alias que incluyen CP943C y Windows-932 ) [3] en International Components for Unicode (ICU). También existe una segunda codificación ICU denominada ibm-943_P130-1999 [8] , que utiliza diferentes asignaciones de un solo byte que coinciden más estrechamente con las definiciones de la página de códigos de IBM. (Consulte § Diferencias de caracteres de un solo byte a continuación para obtener más detalles).

La página de códigos 932 de Windows está registrada en la IANA como Windows-31J . [9] La etiqueta "Windows-31J" pertenece a la IANA y no es reconocida por Microsoft, que históricamente ha utilizado "shift_jis" en su lugar. [7] El estándar de codificación W3C / WHATWG utilizado por HTML5 trata la etiqueta " shift_jis " de manera intercambiable con "windows-31j" con la intención de que sea "compatible con el contenido implementado" [10] y coincide con la página de códigos 932 de Windows [1] (incluidas las "extensiones anteriormente propietarias de IBM y NEC"). [11]

La página de códigos 932 de Windows también se denomina MS_Kanji , [3] [12] aunque IANA trata a MS_Kanji como un alias para Shift JIS estándar. [9] Python , por ejemplo, utiliza la etiqueta MS-Kanji(o cp932) para Windows-932 y la etiqueta Shift_JIS(o sjis) para Shift JIS definido por JIS X 0208, sin reconocer la Windows-31Jetiqueta. [12]

En las ediciones japonesas de Windows, esta página de códigos se denomina "ANSI" , ya que es la codificación de 8 bits predeterminada del sistema operativo, aunque ANSI no estuvo involucrado en su definición.

Diferencias con el estándar Shift JIS

Windows-31J a menudo se confunde con el Shift JIS estándar (como se define en JIS X 0208 :1997 Apéndice 1): si bien son similares, la distinción es significativa para los programadores de computadoras que desean evitar mojibake .

Diferencias entre caracteres de doble byte

Diagrama de Euler que compara los repertorios de JIS X 0208 , JIS X 0212 , JIS X 0213 , Windows-31J, el repertorio estándar de Microsoft y Unicode

Además de los caracteres estándar JIS X 0201 :1997 y JIS X 0208 :1997, Windows-31J incluye varias extensiones JIS X 0208, a saber, " Caracteres especiales NEC (fila 13), selección NEC de extensiones IBM (filas 89 a 92) y extensiones IBM (filas 115 a 119)", [9] además de reservar algo de espacio de codificación para la definición del usuario final . [13] Esto también difiere de IBM-932 , que no incluye las extensiones NEC ni la selección NEC. [5]

Las extensiones IBM fueron diseñadas para codificar caracteres del repertorio DBCS-Host japonés de IBM que inicialmente estaban ausentes en JIS X 0208; el signo "porque" ∵ y el signo "no"¬ se agregaron más tarde a JIS X 0208 en 1983, y Microsoft los incluye en ubicaciones de extensión además de sus ubicaciones de 1983. [14] Las extensiones NEC también codifican la totalidad del repertorio IBM, pero en una extensión separada dentro de la cuadrícula JIS X 0208 de 94 × 94 (en las filas 89 a 92, además de los caracteres ya incluidos en la fila 13 de NEC ), en lugar de usar códigos Shift JIS más allá del rango JIS X 0208; la página de códigos 932 de Windows incluye estos 388 caracteres en ambas ubicaciones. [14] Como resultado, los signos porque y no se codifican tres veces.

Algunas de estas representaciones se utilizaron posteriormente para diferentes caracteres en JIS X 0213 y Shift JIS-2004 . Por ejemplo, compare la fila 89 en JIS X 0213 (que comienza con 硃, 硎, 硏…) [15] con la fila 89 que utiliza JIS X 0208 con extensiones IBM/NEC (que comienza con 纊, 褜, 鍈…). [16] En consecuencia, Shift JIS-2004 no es compatible con Windows-31J.

Además de lo anterior, Microsoft utiliza una asignación Unicode diferente (pero visualmente similar) para varios caracteres de puntuación de doble byte en comparación con el estándar Shift JIS, como el guión ondulado que se asigna a U+FF5E en lugar de U+301C, [17] al que le sigue ibm-943_P15A-2003 [18] pero no ibm-943_P130-1999, [19] y utiliza una asignación diferente para la barra invertida de doble byte. [17]

Diferencias entre caracteres de un solo byte

Windows-932 incluye asignaciones ASCII estándar de 7 bits para secuencias de un solo byte con el bit alto establecido en 0. Por lo tanto, los códigos 0x5C y 0x7E se asignan a Unicode como U+005C REVERSE SOLIDUS ( \, la barra invertida ) y U+007E TILDE ( ~) respectivamente, [20] [21] [17] como lo son en ASCII ( ISO-646 -US). Esto también lo hace el estándar de codificación W3C/WHATWG. [22] Por el contrario, 0x5C se asigna a U+00A5 YEN SIGN ( ¥) en ISO-646-JP y, en consecuencia, JIS X 0201 , del cual el estándar Shift JIS es una extensión. En consecuencia, Windows-31J evita la codificación duplicada de la barra invertida al asignar el byte doble 0x815F a U+FF3C FULLWIDTH REVERSE SOLIDUS, mientras que el Shift JIS estándar lo asigna a U+005C. [17]

Sin embargo, 0x5C en Windows-932 se considera un signo de yen en ciertos contextos. [23] Por esta razón, en muchas fuentes japonesas, U+005C se muestra como un símbolo de yen, que normalmente se representaría como U+00A5, en lugar de como una barra invertida según la representación sugerida por Unicode. U+00A5 es un ajuste óptimo unidireccional asignado a 0x5C en Windows-932. Sin embargo, el código 0x5C en Windows-932 se comporta como una barra invertida en todos los aspectos (por ejemplo, en las rutas de archivo en los sistemas Windows) excepto en la forma en que se muestra en algunas fuentes, [23] y la documentación de Microsoft para Windows-932 muestra 0x5C como una barra invertida. [21] Esta asignación [20] corresponde a la codificación denominada "ibm-943_P15A-2003" en Componentes internacionales para Unicode (ICU), [3] excepto por un reordenamiento menor de algunos caracteres de control C0 .

IBM-943 , al igual que IBM-932 , [5] es un superconjunto de la página de códigos 897 de un solo byte , [6] que asigna 0x5C al símbolo del yen ( ¥) y 0x7E a la línea superior ( ), [24] a esto le sigue la codificación denominada "ibm-943_P130-1999" en ICU. [8] La página de códigos 897 (y, por lo tanto, también IBM-943 e IBM-932) también agrega caracteres de dibujo de caja de un solo byte que reemplazan ciertos caracteres de control C0 , [24] sin embargo, estos aún pueden tratarse como caracteres de control según el contexto, [25] y se asignan a caracteres de control en ICU. [8]

Disposición


Véase también

Referencias

  1. ^ abc Mozilla Foundation . "Diferencias notables con respecto a la nomenclatura de IANA". Crate encoding_rs . docs.rs.
  2. ^ Sivonen, Henri. "Error 27851: agregar MS932 como etiqueta de Shift_JIS". Rastreador de errores de w3.org .
  3. ^ abcde «Explorador de convertidores: ibm-943_P15A-2003 (alias windows-31j)». Componentes internacionales para Unicode: demostración de la UCI .
  4. ^ Aoki, Osamu. "Capítulo 11. Conversión de datos". Referencia de Debian . Debian.
  5. ^ abcde "IBM-943 e IBM-932". Centro de conocimiento de IBM . IBM.
  6. ^ ab "Identificadores de conjuntos de caracteres codificados - CCSID 943". IBM Globalization . IBM. Archivado desde el original el 15 de marzo de 2016.
  7. ^ ab "Propiedad Encoding.WindowsCodePage - .NET Framework (versión actual)". MSDN . Microsoft.
  8. ^ abc "Explorador de convertidores: ibm-943_P130-1999". Componentes internacionales para Unicode: Demostración de la UCI .
  9. ^ abc "Conjuntos de caracteres". IANA.
  10. ^ van Kesteren, Ana . "4.2. Nombres y etiquetas". Estándar de codificación . QUÉ.
  11. ^ van Kesteren, Ana . "5. Índices (§ Índice jis0208)". Estándar de codificación . QUÉ.
  12. ^ ab "7.2.3. Codificaciones estándar". Documentación de Python 3.6 . Python Software Foundation . Consultado el 19 de septiembre de 2017 .
  13. ^ Kaplan, Michael S (26 de mayo de 2007). "La PUA fuera de Unicode". Poniéndolo todo en orden .
  14. ^ ab Lunde, Ken (2009). "Apéndice E: Estándares de conjuntos de caracteres de proveedores" (PDF) . Procesamiento de información CJKV: computación china, japonesa, coreana y vietnamita (2.ª ed.). Sebastopol, CA : O'Reilly . ISBN 978-0-596-51447-1.
  15. ^ Comité de Normas Industriales Japonesas (13 de abril de 2004). Conjunto de caracteres gráficos japoneses para el intercambio de información, plano 1 (PDF) . ITSCJ/ IPSJ . ISO-IR -233.
  16. ^ van Kesteren, Ana . "Visualización del índice jis0208". Estándar de codificación . QUÉ.
  17. ^ abcd "Ambigüedades en la conversión de Shift-JIS a Unicode (no normativo)". Perfil XML japonés . W3C.
  18. ^ "Explorador de convertidores: ibm-943_P15A-2003: byte inicial 0x81". Demostración de ICU . Componentes internacionales para Unicode.
  19. ^ "Explorador de convertidores: ibm-943_P130-1999: byte inicial 0x81". Demostración de ICU . Componentes internacionales para Unicode.
  20. ^ ab "CP932.TXT". Consorcio Unicode.
  21. ^ ab "Byte inicial NULL — Página de códigos 932". Microsoft.
  22. ^ van Kesteren, Anne . "12.3.1. Descodificador Shift_JIS". Estándar de codificación . WHATWG. Si byte es un byte ASCII o 0x80, devuelve un punto de código cuyo valor es byte.
  23. ^ ab Kaplan, Michael S. (17 de septiembre de 2005). "¿Cuándo una barra invertida no es una barra invertida?". Poniéndolo todo en orden .
  24. ^ desde "CP00897.txt". IBM.
  25. ^ "Identificadores de páginas de códigos - CP 00897". IBM Globalization . IBM. Archivado desde el original el 17 de marzo de 2016.

Enlaces externos

Relacionado con Microsoft

Relacionado con IBM