stringtranslate.com

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

La página de códigos de Microsoft Windows 932 (abreviada MS932 , [2] [3] Windows-932 [3] o ambiguamente CP932 [4] ), también llamada Windows-31J , entre otros nombres (consulte § 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 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 ), [5] que es una combinación de la página de códigos de un solo byte 897 y la página de códigos de doble byte 941 . [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 datos de Windows-31J, aunque incluye algunos caracteres adicionales y algunos de los caracteres existentes se asignan a Unicode de manera diferente. Esto ha llevado al estándar HTML WHATWG a tratar las etiquetas de codificación shift_jisde windows-31jmanera 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 , 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 orden 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 Componentes internacionales para Unicode (ICU). También hay 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 de Windows 932 está registrada en la IANA como Windows-31J . [9] La etiqueta "Windows-31J" es de IANA y no está 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 " indistintamente con "windows-31j" con la intención de ser "compatible con el contenido implementado" [10] y coincide con la página de códigos de Windows 932 [1] (incluyendo las "extensiones anteriormente propietarias de IBM y NEC"). [11]

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

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

Diferencias con el Shift JIS estándar

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

Diferencias de caracteres de doble byte

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)", [9] además de reservar algo de espacio de codificación para la definición del usuario final . [13] Esto también difiere del IBM-932 , que no incluye las extensiones NEC ni la selección NEC. [5]

Las extensiones de 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 al propio JIS X 0208 en 1983, y Microsoft los incluye en las ubicaciones de extensión, así como en sus ubicaciones de 1983. [14] Las extensiones NEC también codifican la totalidad del repertorio de IBM, pero en una extensión separada dentro de la cuadrícula 94×94 JIS X 0208 (en las filas 89–92, además de los caracteres ya incluidos en la fila 13 de NEC ), en lugar de utilizar Cambie los códigos JIS más allá del rango JIS X 0208; La página de códigos de Windows 932 incluye estos 388 caracteres en ambas ubicaciones. [14] Como resultado, los signos porque y no se codifican tres veces.

Algunas de estas representaciones fueron utilizadas posteriormente para diferentes caracteres por 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 utilizada por 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 un mapeo 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 asignado a U+FF5E en lugar de U+301C, [17] que va seguido de ibm-943_P15A-2003 [18] pero no de ibm-943_P130-1999, [19] y utiliza una asignación diferente para la barra invertida de doble byte. [17]

Diferencias de 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] tal como están en ASCII ( ISO-646 -US). Esto también lo hace el estándar de codificación W3C/WHATWG. [22] Por el contrario, 0x5C está asignado a U+00A5 YEN SIGN ( ¥) en ISO-646-JP y, en consecuencia, a 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 asignando el doble byte 0x815F a U+FF3C FULLWIDTH REVERSE SOLIDUS, mientras que el estándar Shift JIS lo asigna a U+005C. [17]

Sin embargo, 0x5C en Windows-932 se considera un signo del 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 tiene 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 (por ejemplo, en rutas de archivos en sistemas Windows), excepto en cómo se muestran 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 una reordenación menor de algunos caracteres de control C0 .

IBM-943, como IBM-932 , [5] es un superconjunto de la página de códigos de un solo byte 897 , [6] que asigna 0x5C al símbolo del yen ( ¥) y 0x7E a la línea superior ( ), [24] a esto le sigue por 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 cuadro 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 están asignados a personajes de control en la UCI. [8]

Disposición


Ver también

Referencias

  1. ^ Fundación abc Mozilla . "Diferencias notables con los nombres de la IANA". Caja encoding_rs . docs.rs.
  2. ^ Sivonen, Henri. "Error 27851: agregue 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 juego de caracteres codificados: CCSID 943". Globalización de IBM . 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 . Fundación de software Python . Consultado el 19 de septiembre de 2017 .
  13. ^ Kaplan, Michael S (26 de mayo de 2007). "La PUA fuera de Unicode". Ordenándolo todo .
  14. ^ ab Lunde, Ken (2009). "Apéndice E: Estándares de juego de caracteres del proveedor" (PDF) . Procesamiento de información CJKV: informática china, japonesa, coreana y vietnamita (2ª ed.). Sebastopol, California : O'Reilly . ISBN 978-0-596-51447-1.
  15. ^ Comité Japonés de Normas Industriales (13 de abril de 2004). Conjunto de caracteres gráficos japoneses para 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 japonés XML . W3C.
  18. ^ "Explorador de convertidores: ibm-943_P15A-2003: byte de inicio 0x81". Demostración de la UCI . Componentes internacionales para Unicode.
  19. ^ "Explorador de convertidores: ibm-943_P130-1999: byte de inicio 0x81". Demostración de la UCI . 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, Ana . "12.3.1. Decodificador Shift_JIS". Estándar de codificación . QUÉ. Si el byte es un byte ASCII o 0x80, devuelve un punto de código cuyo valor es un byte.
  23. ^ ab Kaplan, Michael S. (17 de septiembre de 2005). "¿Cuándo una barra invertida no es una barra invertida?". Ordenándolo todo .
  24. ^ ab "CP00897.txt". IBM.
  25. ^ "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

Relacionado con Microsoft

relacionado con IBM