De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

La página de códigos de Microsoft Windows 932 (abreviada MS932 , [1] [2] Windows-932 [2] o ambiguamente CP932 [3] ), 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 ASCII estándar de 7 bits Los códigos 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 utilizan 8 o 16 bits para la codificación.

IBM ofrece los mismos códigos extendidos de doble byte en su página de códigos 943 ( IBM-943 o CP943 ), [4] 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 . [5]

Windows-31J es la codificación japonesa no UTF-8 / Unicode más utilizada en la web. En realidad, Shift JIS es la codificación mucho más declarada, pero según los estándares HTML W3C / WHATWG, las codificaciones se declaran de la misma manera, y aunque el último nombre se usa en los estándares, se define para decodificar el primero. Consulte la página Shift JIS para obtener estadísticas.

Terminología [ editar ]

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 , aunque también es una variante de Shift JIS, carece de las extensiones de proveedor de doble byte seleccionadas por NEC y NEC que están presentes en La variante de Microsoft (aunque ambas incluyen las extensiones de IBM) y conserva el pedido de 1978 de JIS X 0208. [4]

La página de IBM Código 943 (o "IBM-943") incluye los mismos códigos de bytes dobles como página de códigos de Windows 932. [4] versión corresponde de Microsoft estrechamente a la codificación conocen como IBM-943_P15A-2003 (con alias incluyendo CP943C y en Windows 932 ) [2] en Componentes internacionales para Unicode (ICU). También hay una segunda codificación de ICU denominada ibm-943_P130-1999 , [6] que utiliza diferentes asignaciones de un solo byte que se asemejan más a las definiciones de 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 de Windows 932 está registrada en IANA como Windows-31J . [7] La etiqueta "Windows-31J" es de IANA y no la reconoce Microsoft, que históricamente ha utilizado "shift_jis" en su lugar. [8] 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 ser "compatible con el contenido implementado" [9] y coincide con la página de códigos de Windows 932 (incluido el "anteriormente extensiones propietarias de IBM y NEC "). [10]

La página de códigos de Windows 932 también se llama MS_Kanji , [2] [11] aunque IANA trata a MS_Kanji como un alias para Shift JIS estándar. [7] Python , por ejemplo, usa 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. [11]

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 participó en su definición.

Diferencias con Shift JIS estándar [ editar ]

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

Diferencias de caracteres de doble byte [ editar ]

Diagrama de Euler que compara 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 de IBM (filas 115 a 119) ", [7] además de reservar algo de espacio de codificación para la definición del usuario final . [12] Esto también difiere de IBM-932 , que no incluye las extensiones NEC o la selección NEC. [4]

Algunas de estas representaciones fueron posteriormente utilizadas para diferentes caracteres por JIS X 0213 y Shift JIS-2004 . Por ejemplo, compare la fila 89 en JIS X 0213 (comenzando con 硃, 硎, 硏…) [13] con la fila 89 como la usa JIS X 0208 con extensiones IBM / NEC (comenzando con 纊, 褜, 鍈…). [14] En consecuencia, Shift JIS-2004 no es compatible con Windows-31J.

Además de lo anterior, Microsoft usa un mapeo Unicode diferente (pero visualmente similar) para varios caracteres de puntuación de doble byte en comparación con Shift JIS estándar, como el guión de onda que se asigna a U + FF5E en lugar de U + 301C, [15] que va seguido de ibm-943_P15A-2003 [16] pero no ibm-943_P130-1999, [17] y utiliza una correlación diferente para la barra invertida de doble byte. [15]

Diferencias de caracteres de un solo byte [ editar ]

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, [18] [19] [15] ya que están en ASCII ( ISO-646 -US). Esto también lo hace el estándar de codificación W3C / WHATWG. [20] Por el contrario, 0x5C se asigna a U + 00A5 YEN SIGN ( ¥) en ISO-646-JP y, en consecuencia, JIS X 0201 , de los cuales Shift JIS estándares una extensión. En consecuencia, Windows-31J evita la codificación duplicada de la barra invertida al asignar el doble byte 0x815F a U + FF3C FULLWIDTH REVERSE SOLIDUS, mientras que Shift JIS estándar lo asigna a U + 005C. [15]

Sin embargo, 0x5C en Windows-932 se considera un signo de Yen en ciertos contextos. [21] 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 una barra invertida según la representación sugerida de Unicode. U + 00A5 es el mejor ajuste unidireccional asignado a 0x5C en Windows-932. Sin embargo, el código 0x5C en Windows-932 se comporta como un sólido inverso (barra invertida) en todos los aspectos (p. Ej., En las rutas de archivo en los sistemas Windows), además de cómo lo muestran algunas fuentes, [21] y la documentación de Microsoft para Windows-932 muestra 0x5C como una barra invertida. [19] Esta asignación [18] corresponde a la codificación denominada "ibm-943_P15A-2003" enComponentes internacionales para Unicode (ICU), [2] excepto por un reordenamiento menor de algunos caracteres de control C0 .

IBM-943, como IBM-932 , [4] es un superconjunto de la página de códigos de un solo byte 897 , [5] que asigna 0x5C al símbolo de Yen ( ¥) y 0x7E a la línea superior ( ), [22] se sigue por la codificación denominada "ibm-943_P130-1999" en ICU. [6] 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 cuadro de un solo byte que reemplazan ciertos caracteres de control C0 , [22] sin embargo, estos pueden ser tratados como caracteres de control dependiendo del contexto, [23] y se asignan para controlar los caracteres en la UCI. [6]

Diseño [ editar ]


Ver también [ editar ]

  • LMBCS-16

Referencias [ editar ]

  1. ^ Sivonen, Henri. "Error 27851 - Agregar MS932 como etiqueta de Shift_JIS" . Seguimiento de errores de w3.org .
  2. ^ a b c d e "Explorador de convertidores: ibm-943_P15A-2003 (alias windows-31j)" . Componentes internacionales para Unicode: demostración en UCI .
  3. ^ Aoki, Osamu. "Capítulo 11. Conversión de datos" . Referencia de Debian . Debian.
  4. ^ a b c d e "IBM-943 e IBM-932" . Centro de conocimiento de IBM . IBM.
  5. ^ a b "Identificadores de juego de caracteres codificados - CCSID 943" . Globalización de IBM . IBM. Archivado desde el original el 15 de marzo de 2016.
  6. ^ a b c "Explorador de convertidores: ibm-943_P130-1999" . Componentes internacionales para Unicode: demostración en UCI .
  7. ^ a b c "Juegos de caracteres" . IANA.
  8. ^ "Propiedad Encoding.WindowsCodePage - .NET Framework (versión actual)" . MSDN . Microsoft.
  9. ^ van Kesteren, Anne . "4.2. Nombres y etiquetas" . Estándar de codificación . WHATWG.
  10. ^ van Kesteren, Anne . "5. Índices (§ Índice jis0208)" . Estándar de codificación . WHATWG.
  11. ^ a b "7.2.3. Codificaciones estándar" . Documentación de Python 3.6 . Fundación de software Python . Consultado el 19 de septiembre de 2017 .
  12. Kaplan, Michael S (26 de mayo de 2007). "La PUA fuera de Unicode" . Ordenarlo todo .
  13. ^ Comité japonés de normas industriales (13 de abril de 2004). Juego de caracteres gráficos japoneses para el intercambio de información, plano 1 (PDF) . ITSCJ / IPSJ . ISO-IR -233.
  14. ^ van Kesteren, Anne . "Visualización del índice jis0208" . Estándar de codificación . WHATWG.
  15. ^ a b c d "Ambigüedades en la conversión de Shift-JIS a Unicode (no normativo)" . Perfil japonés XML . W3C.
  16. ^ "Explorador de convertidores: ibm-943_P15A-2003: byte de inicio 0x81" . Demostración en UCI . Componentes internacionales para Unicode.
  17. ^ "Explorador de convertidores: ibm-943_P130-1999: byte de inicio 0x81" . Demostración en UCI . Componentes internacionales para Unicode.
  18. ^ a b "CP932.TXT" . Consorcio Unicode.
  19. ^ a b "Byte inicial NULL - Página de códigos 932" . Microsoft.
  20. ^ 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.
  21. ↑ a b Kaplan, Michael S. (17 de septiembre de 2005). "¿Cuándo una barra invertida no es una barra invertida?" . Ordenarlo todo .
  22. ^ a b "CP00897.txt" . IBM. Archivado desde el original el 12 de enero de 2019 . Consultado el 24 de septiembre de 2017 .
  23. ^ "Identificadores de página de códigos - CP 00897" . Globalización de IBM . IBM. Archivado desde el original el 17 de marzo de 2016.

Enlaces externos [ editar ]

Relacionados con Microsoft [ editar ]

  • Referencia de Microsoft para la página de códigos de Windows 932
  • Archivo de página de códigos para MS932
  • Asignación de la página de códigos 932 de Microsoft a Unicode
  • Demostración de la página de códigos ICU 943C (ibm-943_P15A-2003 alias windows-31j)

IBM relacionado [ editar ]

  • Documentación de IBM de la página de códigos 943
  • Demostración de la página de códigos ICU 943 (ibm-943_P130-1999)
  • Asignación de ICU para ibm-943_P130-1999 a Unicode