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

Shift JIS ( Shift Japanese Industrial Standards , también SJIS , nombre MIME Shift_JIS ) es una codificación de caracteres para el idioma japonés , desarrollada originalmente por una empresa japonesa llamada ASCII Corporation en conjunto con Microsoft y estandarizada como JIS X 0208 Apéndice 1 . En febrero de 2021 , el 0,1% de todas las páginas web utilizaban Shift JIS, una disminución del 1,3% en julio de 2014. [2]

Shift JIS es la segunda codificación de caracteres más popular para sitios web japoneses, utilizada por el 6,3% de los sitios en el dominio .jp. UTF-8 es utilizado por el 92% de los sitios web japoneses. [3] [4]

Descripción [ editar ]

Shift JIS se basa en juegos de caracteres definidos en la norma JIS normas JIS X 0201 : 1997 (para los caracteres de un byte ) y JIS X 0208 : 1997 (para los caracteres de doble byte ). Los bytes iniciales para los caracteres de doble byte se "desplazan" alrededor de los 64 caracteres katakana de medio ancho en el rango de un byte 0xA1 a 0xDF . Los caracteres de un solo byte 0 x 00 a 0x7F coinciden con el ASCII codificación, a excepción de un yen signo (U + 00A5) en 0x5C y un overline(U + 203E) en 0x7E en lugar de la barra invertida y la tilde del juego de caracteres ASCII, respectivamente. Los caracteres de un solo byte de 0xA1 a 0xDF se asignan a los caracteres katakana de ancho medio que se encuentran en JIS X 0201 .

HTML escrito en Shift JIS aún se puede interpretar hasta cierto punto cuando se etiqueta incorrectamente como ASCII, y cuando la etiqueta charset está en la parte superior del documento, ya que el inicio y el final importantes de las etiquetas y campos HTML, <,>, /, ", &,; están codificados por los mismos bytes individuales que en ASCII, y esos bytes no aparecerán en secuencias de dos bytes. Shift JIS se puede usar en cadenas literales en lenguajes de programación como C , pero algunas cosas deben En primer lugar, que el carácter de escape 0x5C, normalmente barra invertida , es el signo yen de ancho medio (¥) en Shift JIS. Si el programador es consciente de esto, sería posible usar (donde ハ ロ ー ワ ー ル ド es Hello , mundoprintf("ハローワールド¥n");y ¥ n es una secuencia de escape), asumiendo que el sistema de E / S admite la salida Shift JIS . En segundo lugar, el byte 0x5C causará problemas cuando aparezca como segundo byte de un carácter de dos bytes, porque se interpretará como una secuencia de escape, lo que estropeará la interpretación, a menos que le siga otro 0x5C.

Shift JIS requiere un medio limpio de 8 bits para la transmisión. Es totalmente compatible con versiones anteriores de la codificación de un solo byte JIS X 0201 heredado , lo que significa que admite katakana de ancho medio y que cualquier cadena JIS X 0201 válida también es una cadena Shift JIS válida. Sin embargo, para caracteres de dos bytes, Shift JIS solo garantiza que el primer byte será el bit alto (0x80–0xFF); el valor del segundo byte puede ser alto o bajo. Aparición de valores de bytes 0x40–0x7E como segundos bytes de palabras de códigodificulta la detección confiable de Shift JIS, porque se utilizan los mismos códigos para los caracteres ASCII. Dado que el mismo valor de byte puede ser el primero o el segundo byte, las búsquedas de cadenas son difíciles, ya que las búsquedas simples pueden coincidir con el segundo byte de un carácter y el primer byte del siguiente, que no es un carácter real. Los algoritmos de búsqueda de cadenas deben estar hechos a medida para Shift JIS .

Por otro lado, el formato de 8 bits de la competencia EUC-JP , que no admite katakana de ancho medio de un solo byte, permite una conversión mucho más limpia y directa hacia y desde los puntos de código JIS X 0208 , ya que todos los bytes de conjuntos de bits altos son partes de un carácter de doble byte y todos los códigos del rango ASCII representan caracteres de un solo byte.

Unicode tampoco tiene algunas de las desventajas de Shift JIS. Unicode no tiene versiones ambiguas: una sola organización asigna nuevos caracteres a lugares no utilizados, mientras que las áreas de uso privado están claramente designadas, nunca se usarán para caracteres estándar y rara vez se necesitan debido a la naturaleza integral de Unicode. Para Shift JIS, las empresas trabajan en paralelo. Unicode codificado en UTF-8 es retrocompatible con ASCII también para 0x5C, y no tiene el problema de búsqueda de cadenas.

Para una secuencia JIS de doble byte , [5] la transformación a los bytes Shift JIS correspondientes es:

Varias versiones [ 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
Relación entre las variantes Shift_JIS en la PC y las codificaciones relacionadas, incluidas las intersecciones y otros subconjuntos. Los nombres dados son descriptivos.

Existen muchas versiones diferentes de Shift JIS. Hay dos áreas de expansión:

En primer lugar, JIS X 0208 no llena todo el espacio 94 × 94 codificado para él en Shift JIS, por lo tanto, hay espacio para más caracteres aquí; estas son realmente extensiones de JIS X 0208 en lugar de Shift JIS en sí.

En segundo lugar, Shift JIS tiene más espacio de codificación que el necesario para JIS X 0201 y JIS X 0208 (ver § Mapa de bytes de Shift JIS a continuación), y este espacio puede y se usa para aún más caracteres.

Windows-932 / Windows-31J [ editar ]

La extensión más popular es la página de códigos de Windows 932 (un CCSID también utilizado para la extensión de IBM para Shift JIS ), que está registrada en IANA como "Windows-31J", [1] por separado de Shift JIS. Esto fue popularizado por Microsoft, aunque Microsoft mismo no reconoce el nombre de Windows-31J y en su lugar llama a esa variación "shift_jis". [6] [7] La página de códigos 943 de IBM incluye los mismos códigos de doble byte que la página de códigos 932 de Microsoft, mientras que la página de códigos 932 de IBM incluye menos extensiones (excluyendo las que Microsoft incorpora de NEC) y conserva el orden de los caracteres de la edición de 1978 de JIS X 0208,en lugar de implementar los intercambios de variantes de personajesdel estándar de 1983. [8]

Windows-31J asigna 0x5C a U + 005C REVERSE SOLIDUS (la barra invertida ) y 0x7E a U + 007E TILDE , siguiendo US-ASCII . [9] Sin embargo, la mayoría de las fuentes localizadas en Windows muestran U + 005C como un signo de Yen para compatibilidad con JIS X 0201 . [10] [11] Incluye varias extensiones, a saber, " caracteres especiales NEC (fila 13), selección NEC de extensiones IBM (filas 89 a 92) y extensiones IBM (filas 115 a 119)", [1] además de dejando algo de espacio de codificación a un lado para la definición del usuario final . [12]

La página de códigos de Windows 932 es la versión utilizada en el estándar de codificación W3C / WHATWG utilizado por HTML5 , que incluye las "extensiones anteriormente propietarias de IBM y NEC" de Windows-31J en su tabla para JIS X 0208, [13] y también trata la etiqueta "shift_jis" indistintamente con "windows-31j" con la intención de ser "compatible con el contenido implementado". [14]

MacJapanese [ editar ]

La versión de Shift-JIS que se originó en el Mac OS clásico (conocido como x-mac-japanese, página de códigos 10001 [6] o MacJapanese) asignó la tilde a 0x7E (siguiendo US-ASCII , no JIS X 0201 que asigna el overline aquí), pero el Yen firmar a 0x5C (como en JIS X 0201 y Shift JIS estándar ). También extendió JIS X 0201 asignando la barra invertida a 0x80 (correspondiente a 0x5C en US-ASCII), el espacio no divisible a 0xA0, el signo de derechos de autor a 0xFD, el símbolo de marca registradaa 0xFE y la elipsis horizontal de ancho medio a 0xFF. También agregó caracteres extendidos de doble byte; incluyendo 53 formas de presentación verticales en los Shift_JIS gama 0xEB41-0xED96, en 84 filas JIS abajo de sus formas canónicas, y 260 caracteres especiales en los Shift_JIS van 0x8540-0x886D. [15] Esta variante se introdujo en KanjiTalk versión 7. [16]

Sin embargo, ciertos tipos de letra de Mac OS usaban otras variantes. Sai Mincho y Chu Gothic usan una variante " PostScript " de MacJapanese, que incluía formas de presentación verticales adicionales y un conjunto diferente de caracteres especiales extendidos, basados ​​en los caracteres especiales de NEC , algunos de los cuales solo estaban disponibles en las versiones de impresión de las fuentes. [15] Las versiones anteriores de Maru Gothic y Hon Mincho del Sistema 7.1 codificaron formas de presentación vertical en 10 (no 84) filas JIS por debajo de sus formas canónicas, y no incluían las extensiones de caracteres especiales, esto se cambió posteriormente. [15] [17]La variante típica utilizada con KanjiTalk versión 6 colocó los formularios de presentación vertical 10 filas hacia abajo, y también usó el diseño de extensión NEC para la fila 13. [18]

Shift_JISx0213 y Shift_JIS-2004 [ editar ]

El estándar JIS X 0213 más nuevo define una variante extendida de Shift_JIS denominada Shift_JISx0213 (en una versión anterior del estándar) o Shift_JIS-2004 . Es un superconjunto de Shift JIS estándar. [19]

Para representar las filas asignadas en ambos planos de JIS X 0213, Shift_JIS-2004 utiliza el siguiente método de mapeo de puntos de código. [20]

En lo anterior, es una secuencia Shift_JIS-2004 de dos bytes, es el número de plano (, men , surface) (1 o 2), es el número de fila (, ku , ward) (1-94) y es el número de celda (, diez , punto) (1-94). Los ku y diez números son equivalentes a y respectivamente, donde es una secuencia JIS de dos bytes referencia a un plano dado.

El mismo conjunto de caracteres puede ser representado por EUC-JIS-2004 , la contraparte basada en EUC-JP.

Algunas de las adiciones chocan con las extensiones populares de Shift JIS, incluida la página de códigos 932 de Windows que se usa en los estándares web (ver más arriba ). Por ejemplo, compare el plano 1, fila 89 en JIS X 0213 (comenzando 硃, 硎, 硏…) [21] con la fila 89 en la variante JIS X 0208 definida en los estándares web (comenzando con 纊, 褜, 鍈…). [22] Además, algunos de los caracteres se asignan a caracteres Unicode más allá del BMP.

Otras variantes [ editar ]

Los operadores de telefonía móvil japoneses utilizan el espacio con bytes iniciales 0xF5 a 0xF9 (más allá de la región utilizada para JIS X 0208) para pictografías que se utilizan en el correo electrónico . [23] KDDI va más allá y define cientos más en el espacio con los bytes iniciales 0xF3 y 0xF4. [24]

Más allá de esto, se han realizado numerosas variaciones menores en Shift JIS, con caracteres individuales alterados aquí y allá. La mayoría de estas extensiones y variantes no tienen registro IANA , por lo que existe un gran margen de confusión si se utilizan las extensiones.

Una variante es la que debe usarse si se desea codificar Shift JIS en cadenas de código fuente de C y lenguajes de programación similares. Esta variante duplica el byte 0x5C si aparece como segundo byte de un carácter de dos bytes, pero no si aparece como un solo carácter "¥" (ASCII: "\"), porque 0x5C es el comienzo de una secuencia de escape . La mejor manera de manejar esto es un editor especial que codifica Shift JIS de esta manera.

Cambiar mapa de bytes JIS [ editar ]

Como se define en JIS X 0208: 1997 [ editar ]

La tabla siguiente proporciona el significado detallado de cada byte en una secuencia codificada en Shift JIS estándar (conforme a JIS X 0208: 1997 ).

Con extensiones de proveedor o JIS X 0213 [ editar ]

Algunos de los bytes que no se utilizan para códigos de un solo byte o bytes iniciales en JIS X 0208: 1997 son utilizados por ciertas extensiones, lo que da como resultado el diseño que se detalla en el cuadro siguiente.


Ver también [ editar ]

  • Lengua japonesa y computadoras
  • Página de códigos de Microsoft 932
  • Mojibake
  • Cambiar el arte de JIS

Referencias [ editar ]

  1. ^ a b c "Juegos de caracteres" . IANA.
  2. ^ "Tendencias históricas en el uso de codificaciones de caracteres para sitios web, febrero de 2021" . w3techs.com . Consultado el 11 de febrero de 2021 .
  3. ^ "Distribución de codificaciones de caracteres entre sitios web que usan .jp" . w3techs.com . Consultado el 27 de abril de 2021 .
  4. ^ "Distribución de codificaciones de caracteres entre sitios web que usan japonés" . w3techs.com . Consultado el 27 de abril de 2021 .
  5. ^ j 1 y j 2 están cada uno en el rango de 33 (0x21) a 126 (0x7e) inclusive (es decir, valores de caracteres de 7 bits excluyendo los caracteres de control (0–31 (0x1f) y 127 (0x7f)) y espacio)
  6. ^ a b "Propiedad Encoding.WindowsCodePage - .NET Framework (versión actual)" . MSDN . Microsoft.
  7. ^ "Identificadores de página de códigos" . Centro de desarrollo de Windows . Microsoft.
  8. ^ "IBM-943 e IBM-932" . Centro de conocimiento de IBM . IBM.
  9. ^ "CP932.TXT" . Consorcio Unicode.
  10. ^ "3.1.1 Detalles de problemas" . Problemas y soluciones para Unicode y caracteres definidos por el usuario / proveedor . El Grupo Abierto de Japón. Archivado desde el original el 3 de febrero de 1999.
  11. Kaplan, Michael S. (17 de septiembre de 2005). "¿Cuándo una barra invertida no es una barra invertida?" .
  12. Kaplan, Michael S (26 de mayo de 2007). "La PUA fuera de Unicode" . Ordenarlo todo .
  13. ^ "5. Índices (§ Índice jis0208)" . Estándar de codificación . WHATWG.
  14. ^ "4.2. Nombres y etiquetas" . Estándar de codificación . WHATWG.
  15. ^ a b c "JAPANESE.TXT: Mapa (versión externa) de la codificación japonesa de Mac OS a Unicode 2.1 y posterior" . Apple Computer, Inc .; Consorcio Unicode.
  16. Lunde, Ken (21 de marzo de 2019). "Una breve historia de las ligaduras de nombres de época de Japón" . Blog de tipo CJK . Adobe Inc .
  17. ^ "Variantes de codificación para MacJapanese" . Documentación para desarrolladores de Apple . Manzana.
  18. ^ Lunde, Ken (2008). "Apéndice E: Estándares del juego de caracteres del proveedor" (PDF) . Procesamiento de información CJKV . O'Reilly Media . ISBN  9780596514471.
  19. ^ "Tablas de asignación de código JIS X 0213" . x0213.org.
  20. ^ "JIS X 0213 の 代表 的 な 符号 化 方式 § Shift_JIS-2004" (en japonés). Los números hexadecimales de la fuente se han convertido a decimales para su visualización.
  21. ^ 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.
  22. ^ "Visualización de índice jis0208" . Estándar de codificación . WHATWG.
  23. ^ "Emoji original de DoCoMo" . FileFormat.info.
  24. ^ "Emoji original de KDDI" . FileFormat.info.

Enlaces externos [ editar ]

  • Shift-JIS Kanji Table  : una tabla de la parte no ASCII del conjunto de códigos
  • "Página de códigos de Windows 932" . Microsoft . 1 de mayo de 2005. Archivado desde el original el 7 de marzo de 2008. - Definición de Microsoft
  • Formas de Shift-JIS en ICU ( Componentes internacionales para Unicode )
    • ibm-942 (sjis78)
    • ibm-943 (contiene la asignación \ u00A5 ↔ \ x5C)
    • Shift JIS (contiene el mapeo \ u005C ↔ \ x5C)