Code Seite 932 (Microsoft Windows)

Windows -Code Seite 932
Mime / Iana Windows-31J
Alias ​​(e) CP943C
Sprachen) japanisch
Standard Whatwg Codierungsstandard (als "Shift_jis")
Einstufung Erweiterte ASCII,[a] Codierung der variablen Breite, CJK -Codierung
Erweitert Revers_jis
  1. ^ Nicht im strengsten Sinne des Begriffs, da ASCII -Bytes als Trail -Bytes erscheinen können.

Microsoft Windows -Code Seite 932 (abgekürzt MS932,[1][2] Windows-932[2] oder mehrdeutig CP932[3]), auch genannt Windows-31J unter anderem (siehe § Terminologie unten) ist das Microsoft Windows Codepage für die japanische Sprache, was eine erweiterte Variante der ist Schicht jis japanisch Zeichenkodierung. Es enthält Standard 7-Bit ASCII Codes und japanische Zeichen werden durch das hohe Bit des ersten Bytes angezeigt, das auf 1 gesetzt ist. Einige Codepunkte auf dieser Seite erfordern ein zweites Byte. Daher verwenden Zeichen entweder 8 oder 16 Bits für die Codierung.

IBM bietet die gleichen erweiterten Doppel-Byte-Codes in ihren Codepage 943 (IBM-943 oder CP943),[4] Das ist eine Kombination aus der Single-Byte Code Seite 897 und das Doppelbyte Code Seite 941.[5]

Windows-31J ist das am häufigsten verwendete Nicht-NichtsUTF-8/Unicode Japanische Codierung im Web. Eigentlich Schicht jis Ist die viel erklärtere Codierung, aber nach W3C/Whatwg -HTML -Standards werden die Codierungen gleich erklärt, und während der letztere Name in den Standards verwendet wird, wird sie definiert, um das erstere zu dekodieren. Sehen Schicht jis Seite für Statistiken.

Terminologie

Die Shift JIS -Variante von Microsoft ist einfach als "Code Seite 932" auf Microsoft Windows bekannt, dies ist jedoch mehrdeutig als IBMs Code Seite 932Während auch eine Schicht-JIS-Variante, fehlt die NEC- und NEC-ausgewählten Doppel-Byte-Anbieter-Erweiterungen, die in der Microsoft-Variante vorhanden sind (obwohl beide die IBM-Erweiterungen enthalten) und die Bestellung von JIS X 0208 von 1978 erhalten.[4]

Die Code-Seite 943 von IBM (oder "IBM-943") enthält dieselben Doppel-Byte-Codes wie Windows-Code-Seite 932.[4] Die Version von Microsoft entspricht eng mit der Codierung als als als bezeichnet IBM-943_P15A-2003 (mit Aliase einschließlich CP943C und Windows-932)[2] in Internationale Komponenten für Unicode (ICU). Es gibt auch eine zweite Intensiv -Codierung mit dem Namen IBM-943_P130-1999,[6] Dies verwendet verschiedene Single-Byte-Zuordnungen, die den Code-Seitendefinitionen von IBM enger übereinstimmen. (Sehen § Einzelunterschiede mit Einzelbyte unten für Details.)

Windows -Code Seite 932 ist mit dem registriert Iana wie Windows-31J.[7] Das "Windows-31J" -Label ist IANAs und nicht von Microsoft erkannt, das stattdessen "Shift_JIS" verwendet hat.[8] Das W3c/Waswg Codierungsstandard verwendet von HTML5 behandelt das Etikett "revers_jis"austauschbar mit" Windows-31J "mit der Absicht," kompatibel mit bereitgestellten Inhalten "zu sein"[9] und entspricht Windows Code Seite 932 (einschließlich der "ehemals proprietären Erweiterungen von IBM und NEC").[10]

Windows -Code -Seite 932 wird ebenfalls aufgerufen MS_KANJI,[2][11] Obwohl Iana MS_Kanji als Alias ​​für Standard -Shift -JIs behandelt.[7] PythonVerwendet zum Beispiel das Etikett MS-Kanji (oder CP932) für Windows-932 und das Etikett Revers_jis (oder sjis) für JIS x 0208 definierte Schicht jis, ohne das zu erkennen Windows-31J Etikett.[11]

In japanischen Windows -Ausgaben ist diese Code -Seite als "Ansi" bezeichnetDa es sich um die Standard-8-Bit-Codierung des Betriebssystems handelt, obwohl es Ansi war nicht an seiner Definition beteiligt.

Unterschiede zu Standardverschiebungs -JIs

Windows-31J wird oft mit Standardverschiebungs-JIs verwechselt (wie in definiert in Jis x 0208: 1997 Anhang 1): Obwohl ähnlich ist, ist die Unterscheidung für Computerprogrammierer von Bedeutung, die vermeiden möchten Mojibake.

Doppel-Byte-Charakterunterschiede

Euler -Diagramm Vergleich von Repertoires von Jis x 0208, Jis x 0212, Jis x 0213, Windows-31J, das Microsoft Standard Repertoire und Unicode

Zusätzlich zum Standard Jis x 0201: 1997 und Jis x 0208: 1997 Zeichen, Windows-31J enthält mehrere JIS X 0208-Erweiterungen, nämlich "NEC -Sonderzeichen (Zeile 13), NEC -Auswahl der IBM -Erweiterungen (Zeilen 89 bis 92) und IBM -Erweiterungen (Zeilen 115 bis 119) ","[7] Zusätzlich zum Abbau eines Codierungsraums für Endbenutzerdefinition.[12] Dies unterscheidet sich auch von IBM-932, was nicht die NEC -Erweiterungen oder die NEC -Auswahl enthält.[4]

Die IBM -Erweiterungen wurden entwickelt, um Zeichen aus dem zu codieren IBM Japaner DBCS-Host Repertoire, das zunächst in JIS x 0208 nicht vorhanden war; das 'Weil' Zeichen ∵ und 'nicht' Zeichen ¬ wurden 1983 zu JIS X 0208 selbst hinzugefügt, und Microsoft umfasst sie an Verlängerungsorten sowie in ihren Standorten von 1983.[13] Die NEC -Erweiterungen codieren auch das gesamte IBM -Repertoire, jedoch in einer separaten Erweiterung innerhalb des 94 × 94 JIS X 0208 -Gitters (in den Zeilen 89–92, neben den bereits enthaltenen Zeichen in NEC Zeile 13), anstatt Shift -JIS -Codes jenseits des JIS X 0208 -Bereichs zu verwenden; Windows -Code Seite 932 enthält diese 388 Zeichen an beiden Standorten.[13] Infolgedessen werden die Was und nicht die Zeichen dreimal codiert.

Einige dieser Darstellungen wurden anschließend für verschiedene Zeichen verwendet Jis x 0213 und Schicht JIS-2004. Vergleichen Sie beispielsweise Zeile 89 in JIS x 0213 (Beginn 硃, 硎, 硏…)[14] bis zur Reihe 89 wie von JIS x 0208 mit IBM/NEC -Erweiterungen (Beginn 纊, 褜, 鍈…).[15] Folglich ist Shift JIS-2004 nicht mit Windows-31J kompatibel.

Zusätzlich zum oben genannten verwendet Microsoft unterschiedliche (aber visuell ähnliche) Unicode-Mapping für mehrere Doppel-Byte Wave Dash Sein u+ff5e zugeordnet eher als u+301c,[16] Anschließend IBM-943_P15A-2003[17] Aber nicht IBM-943_P130-1999,[18] und Verwendung verschiedener Zuordnungen für den Doppel -Byte -Backslash.[16]

Single-Byte-Charakterunterschiede

Windows-932 enthält Standard 7-Bit ASCII Zuordnungen für Single-Byte-Sequenzen mit dem hohen Bit auf 0. Daher werden Codes 0x5c und 0x7e als U+005C Reverse Solidus (UNICODE) abgebildet (u+005c (\, das Backslash) und u+007e TILDE (~) beziehungsweise,[19][20][16] wie sie in ASCII sind (ISO-646-UNS). Dies wird ebenfalls durch den Codierungsstandard von W3C/Whatwg gemacht.[21] Im Gegensatz dazu wird 0x5c U+00A5 zugeordnet Yen Zeichen (¥) in ISO-646-JP und folglich Jis x 0201von welchem ​​Standard Schicht jis ist eine Erweiterung. Entsprechend vermeidet Windows-31J eine doppelte Codierung des Backslash, indem das Doppel-Byte 0x815F auf U+FF3C-Vollbreiten-Reverse Solidus abgebildet wird, während Standard-Verschiebungs-JIs es auf U+005c ordnen.[16]

0x5c in Windows-932 wird jedoch in bestimmten Kontexten als Yen-Zeichen angesehen.[22] Aus diesem Grund wird U+005C in vielen japanischen Schriftarten als Yen -Symbol angezeigt, das normalerweise als U+00A5 dargestellt wird, und nicht als Rückschlag per Unicode, das vorgeschlagen wurde. U+00A5 ist in Windows-932 auf 0x5c zugeordnet. Der Code 0x5c in Windows-932 verhält sich jedoch in jeder Hinsicht wie ein Reverse Solidus (Backslash) (z. B. in Dateipfade unter Windows -Systemen) als wie es von einigen Schriftarten angezeigt wird,[22] und Microsoft-Dokumentation für Windows-932 zeigt 0x5c als Backslash an.[20] Diese Zuordnung[19] entspricht der Codierung mit dem Namen "IBM-943_P15A-2003" in Internationale Komponenten für Unicode (Intensivstation),[2] mit Ausnahme der geringfügigen Neuordnung von wenigen C0 -Steuerzeichen.

IBM-943, wie IBM-932,[4] ist ein Superset der Single-Byte Code Seite 897,[5] welche 0x5c an das Yen -Symbol (¥) und 0x7e zur Überlinie (),[23] Darauf folgt die Kodierung "IBM-943_P130-1999" auf der Intensivstation.[6] Code Seite 897 (und daher auch IBM-943 und IBM-932) fügt auch ein Byte-Box-Zeichnungszeichen hinzu, das bestimmte Ersetzen bestimmter Zeichen C0 -Steuerzeichen,[23] Diese können jedoch je nach Kontext immer noch als Kontrollzeichen behandelt werden.[24] und werden kartiert, um Zeichen auf der Intensivstation zu steuern.[6]

Layout

Erster Byte
0 1 2 3 4 5 6 7 8 9 EIN B C D E F
0
1
2 ! " # $ % & '' ( )) * + Anwesend - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ EIN B C D E F G H ich J K L M N Ö
5 P Q R S T U V W X Y Z [ \ ] ^ _
6 ` a b c d e f g h ich j k l m n Ö
7 p q r s t u v w x y z { | } ~
8
9
EIN
B ソ
C
D
E
F
Zweites Byte
0 1 2 3 4 5 6 7 8 9 EIN B C D E F
0
1
2
3
4
5
6
7
8
9
EIN
B
C
D
E
F
 
Nicht druckbarer ASCII -Zeichen
ASCII -Charakter
ASCII -Zeichen kann durch lokalisierte Schriftarten ersetzt werden
Single-Byte-Halbbreite Katakana
Erster Byte eines Doppel-Byte-Charakters, der von Jis x 0208 verwendet wird
Erster Byte eines Doppel-Byte-NEC- oder NEC-ausgewählten Erweiterungszeichens
Nicht als erster Byte verwendet, nicht zugewiesener Raum in JIS x 0208
Erster Byte eines Doppel-Byte-IBM-Erweiterungscharakters
Erster Byte eines doppelbyte-IBM-designierten Benutzers definierten Charakter
Nicht als erster Byte verwendet, am besten als Einzel Byte zu privaten Gebrauchsbereich zugeordnet
Zweiter Byte eines Doppel-Byte-Charakters, dessen erste Hälfte der JIS-Sequenz ungerade war
Zweiter Byte eines Doppel-Byte-Charakters, dessen erste Hälfte der JIS-Sequenz gerade war
Ungenutzt als zweiter Byte eines Doppelbyte-Charakters


Siehe auch

Verweise

  1. ^ Sivonen, Henri. "Bug 27851 - MS932 als Etikett von Shift_jis hinzufügen". W3.org Bug Tracker.
  2. ^ a b c d e "Converter Explorer: IBM-943_P15A-2003 (Alias ​​Windows-31J)". Internationale Komponenten für Unicode: ICU -Demonstration.
  3. ^ Aoki, Osamu. "Kapitel 11. Datenkonvertierung". Debian Referenz. Debian.
  4. ^ a b c d e "IBM-943 und IBM-932". IBM Knowledge Center. IBM.
  5. ^ a b "Codierte Zeichensatzkennungen - CCSID 943". IBM Globalisierung. IBM. Archiviert von das Original Am 2016-03-15.
  6. ^ a b c "Converter Explorer: IBM-943_P130-1999". Internationale Komponenten für Unicode: ICU -Demonstration.
  7. ^ a b c "Charaktersätze". Iana.
  8. ^ "Coding.WindowsCodePage -Eigenschaft - .NET Framework (aktuelle Version)". Msdn. Microsoft.
  9. ^ Van Kesteren, Anne. "4.2. Namen und Etiketten". Codierungsstandard. Waswg.
  10. ^ Van Kesteren, Anne. "5. Indizes (§ Index JIS0208)". Codierungsstandard. Waswg.
  11. ^ a b "7.2.3. Standardcodierungen". Python 3.6 Dokumentation. Python Software Foundation. Abgerufen 19. September 2017.
  12. ^ Kaplan, Michael S. (2007-05-26). "Die PUA außerhalb von Unicode". Alles aussortieren.
  13. ^ a b Lunde, Ken (2009). "Anhang E: Anbieter -Charakter -Set -Standards" (PDF). CJKV -Informationsverarbeitung: Chinesisch, Japanisch, Koreanisch und Vietnamesisches Computer (2. Aufl.). Sebastopol, ca.: O'Reilly. ISBN 978-0-596-51447-1.
  14. ^ Japanische Industriestandardskomitee (2004-04-13). Japanischer Grafikzeichen für Informationsaustausch, Ebene 1 (PDF). Itcj/Ipsj. ISO-IR-233.
  15. ^ Van Kesteren, Anne. "Index JIS0208 Visualisierung". Codierungsstandard. Waswg.
  16. ^ a b c d "Unklarheiten bei der Umwandlung von Shift-jis zu Unicode (nicht normativ)". XML Japanisches Profil. W3c.
  17. ^ "Converter Explorer: IBM-943_P15A-2003: Start Byte 0x81". ICU -Demonstration. Internationale Komponenten für Unicode.
  18. ^ "Converter Explorer: IBM-943_P130-1999: Start Byte 0x81". ICU -Demonstration. Internationale Komponenten für Unicode.
  19. ^ a b "CP932.txt". Unicode -Konsortium.
  20. ^ a b "Lead Byte Null - Code Seite 932". Microsoft.
  21. ^ Van Kesteren, Anne. "12.3.1. Shift_jis Decoder". Codierungsstandard. Waswg. Wenn Byte ein ASCII -Byte oder 0x80 ist, geben Sie einen Codepunkt zurück, dessen Wert Byte ist.
  22. ^ a b Kaplan, Michael S. (2005-09-17). "Wann ist ein Backslash kein Backslash?". Alles aussortieren.
  23. ^ a b "CP00897.txt". IBM. Archiviert vom Original am 2019-01-12. Abgerufen 2017-09-24.
  24. ^ "Code -Seiten -Kennungen - CP 00897". IBM Globalisierung. IBM. Archiviert von das Original Am 2016-03-17.

Externe Links

Microsoft verwandt

IBM verwandt