Strona kodowa 932 (Microsoft Windows)

Strona kodowa systemu Windows 932
MIME / IANA Windows-31J
Skróty) CP943C
Języki) język japoński
Standard Standard kodowania WHATWG (jako „Shift_JIS”)
Klasyfikacja Rozszerzone ASCII , kodowanie o zmiennej szerokości , kodowanie CJK
rozciąga się Shift_JIS

Strona kodowa Microsoft Windows 932 (w skrócie MS932 , Windows-932 lub niejednoznacznie CP932 ), zwana między innymi Windows -31J (patrz § Terminologia poniżej), to strona kodowa Microsoft Windows dla języka japońskiego , która jest rozszerzonym wariantem Shift kodowanie japońskich znaków JIS . Zawiera standardowe 7-bitowe ASCII , a znaki japońskie są wskazywane przez ustawienie wysokiego bitu pierwszego bajtu na 1. Niektóre punkty kodowe na tej stronie wymagają drugiego bajtu, więc znaki używają 8 lub 16 bitów do kodowania.

IBM oferuje te same rozszerzone kody dwubajtowe w swojej stronie kodowej 943 ( IBM-943 lub CP943 ), która jest kombinacją jednobajtowej strony kodowej 897 i dwubajtowej strony kodowej 941 .

Windows-31J to najczęściej używane japońskie kodowanie inne niż UTF-8 /Unicode w sieci. Jednak wiele osób i pakietów oprogramowania, w tym bibliotek Microsoft, deklaruje Shift JIS dla danych Windows-31J, chociaż zawiera kilka dodatkowych znaków, a niektóre z istniejących znaków są odwzorowywane na Unicode inaczej. Doprowadziło to do tego, że standard WHATWG HTML traktuje zamiennie etykiety kodowania shift_jis i windows-31j oraz używa wariantu Windows dla swojego kodera i dekodera „Shift_JIS”.

Terminologia

Wariant Shift JIS firmy Microsoft jest znany po prostu jako „Strona kodowa 932” w systemie Microsoft Windows, jednak jest to niejednoznaczne, ponieważ strona kodowa 932 firmy IBM , będąca również wariantem Shift JIS, nie ma dwubajtowych rozszerzeń dostawców wybranych przez NEC i NEC, które są obecne w Wariant Microsoftu (chociaż oba zawierają rozszerzenia IBM) i zachowuje zamówienie JIS X 0208 z 1978 roku.

Strona kodowa 943 firmy IBM (lub „IBM-943”) zawiera te same kody dwubajtowe, co strona kodowa systemu Windows 932. Wersja firmy Microsoft ściśle odpowiada kodowaniu określanemu jako ibm-943_P15A-2003 (z aliasami obejmującymi CP943C i Windows - 932 ) w Międzynarodowe komponenty dla Unicode (ICU). Istnieje również drugie kodowanie ICU o nazwie ibm-943_P130-1999 , które wykorzystuje różne odwzorowania jednobajtowe, które lepiej pasują do definicji stron kodowych IBM. ( Szczegółowe informacje znajdują się w § Różnice między znakami jednobajtowymi poniżej).

Strona kodowa Windows 932 jest zarejestrowana w IANA jako Windows-31J . Etykieta „Windows-31J” należy do IANA i nie jest rozpoznawana przez Microsoft, który w przeszłości używał zamiast tego „shift_jis”. Standard W3C / WHATWG używany przez HTML5 traktuje etykietę „ shift_jis ” zamiennie z „windows-31j” z zamiarem „kompatybilności z wdrożoną zawartością” i pasuje do strony kodowej Windows 932 (w tym „wcześniej zastrzeżonych rozszerzeń IBM i NEC ").

Strona kodowa systemu Windows 932 jest również nazywana MS_Kanji , chociaż IANA traktuje MS_Kanji jako alias dla standardowego Shift JIS. Na przykład Python używa etykiety MS-Kanji (lub cp932 ) dla Windows-932 i etykiety Shift_JIS (lub sjis ) dla Shift JIS zdefiniowanej przez JIS X 0208, bez rozpoznawania etykiety Windows-31J .

W japońskich wydaniach systemu Windows ta strona kodowa jest określana jako „ANSI” , ponieważ jest to domyślne 8-bitowe kodowanie systemu operacyjnego, mimo że ANSI nie była zaangażowana w jej definicję.

Różnice w stosunku do standardowego Shift JIS

Windows-31J jest często mylony ze standardowym Shift JIS (zgodnie z definicją w JIS X 0208 :1997 Dodatek 1): chociaż jest podobny, rozróżnienie jest znaczące dla programistów komputerowych, którzy chcą uniknąć mojibake .

Różnice w znakach dwubajtowych

Diagram Eulera porównujący repertuary JIS X 0208 , JIS X 0212 , JIS X 0213 , Windows-31J, standardowy repertuar Microsoft i Unicode

Oprócz standardowych znaków JIS X 0201 :1997 i JIS X 0208 :1997, Windows-31J zawiera kilka rozszerzeń JIS X 0208, a mianowicie „ Znaki specjalne NEC (wiersz 13), wybór rozszerzeń IBM NEC (wiersze od 89 do 92), i rozszerzenia IBM (wiersze od 115 do 119)”, oprócz zarezerwowania trochę miejsca na kodowanie dla definicji użytkownika końcowego . Różni się to również od IBM-932 , który nie obejmuje rozszerzeń NEC ani wyboru NEC.

Rozszerzenia IBM zostały zaprojektowane do kodowania znaków z japońskiego repertuaru IBM DBCS-Host , których początkowo nie było w JIS X 0208; znak „ponieważ” ∵ i znak „nie” ¬ zostały później dodane do samego JIS X 0208 w 1983 r., a firma Microsoft umieszcza je w lokalizacjach rozszerzeń, a także w lokalizacjach z 1983 r. Rozszerzenia NEC również kodują całość repertuaru IBM, ale w osobnym rozszerzeniu w siatce 94 × 94 JIS X 0208 (w wierszach 89–92, oprócz znaków już zawartych w wierszu 13 NEC), zamiast używać kodów Shift JIS poza zakresem JIS X 0208; Strona kodowa systemu Windows 932 zawiera te 388 znaków w obu lokalizacjach. W rezultacie znaki „ponieważ” i „nie” są kodowane trzykrotnie.

Niektóre z tych przedstawień zostały następnie użyte dla różnych postaci przez JIS X 0213 i Shift JIS-2004 . Na przykład porównaj wiersz 89 w JIS X 0213 (początek 硃, 硎, 硏…) z wierszem 89 używanym przez JIS X 0208 z rozszerzeniami IBM/NEC (początek 纊, 褜, 鍈…). W rezultacie Shift JIS-2004 nie jest kompatybilny z Windows-31J.

Oprócz powyższego Microsoft używa innego (ale wizualnie podobnego) mapowania Unicode dla kilku dwubajtowych znaków interpunkcyjnych w porównaniu ze standardowym Shift JIS, na przykład myślnik fali jest mapowany na U + FF5E zamiast U + 301C, po którym następuje ibm-943_P15A-2003, ale nie ibm-943_P130-1999, i używając innego mapowania dla dwubajtowego ukośnika odwrotnego.

Jednobajtowe różnice między znakami

Windows-932 zawiera standardowe 7-bitowe odwzorowania ASCII dla sekwencji jednobajtowych z wysokim bitem ustawionym na 0. Stąd kody 0x5C i 0x7E są odwzorowywane na Unicode jako U+005C REVERSE SOLIDUS ( \ , odwrotny ukośnik ) i U+007E TILDE ( ~ ) odpowiednio, tak jak w ASCII ( ISO-646 -US). Jest to również realizowane przez standard kodowania W3C/WHATWG. Natomiast 0x5C jest odwzorowywane na U+00A5 ZNAK JANA ( ¥ ) w ISO-646-JP iw konsekwencji JIS X 0201 , którego rozszerzeniem jest standard Shift JIS . Odpowiednio, Windows-31J unika podwójnego kodowania ukośnika odwrotnego, mapując podwójny bajt 0x815F na U + FF3C FULLWIDTH REVERSE SOLIDUS, podczas gdy standardowy Shift JIS odwzorowuje go na U + 005C.

Jednak 0x5C w Windows-932 jest mimo wszystko uważany za znak jena w niektórych kontekstach. Z tego powodu w wielu japońskich czcionkach U + 005C jest wyświetlany jako symbol jena, który normalnie byłby reprezentowany jako U + 00A5, a nie jako ukośnik odwrotny zgodnie z sugerowanym renderowaniem Unicode. U + 00A5 to jednokierunkowe najlepsze dopasowanie odwzorowane na 0x5C w Windows-932. Jednak kod 0x5C w Windows-932 zachowuje się jak odwrotny solidus (ukośnik odwrotny) pod każdym względem (np. W ścieżkach plików w systemach Windows) poza tym, jak jest wyświetlany przez niektóre czcionki, a dokumentacja Microsoftu dla Windows-932 wyświetla 0x5C jako ukośnik odwrotny . To odwzorowanie odpowiada kodowaniu o nazwie „ibm-943_P15A-2003” w International Components for Unicode (ICU), z wyjątkiem niewielkiej zmiany kolejności kilku znaków kontrolnych C0 .

IBM-943, podobnie jak IBM-932 , jest nadzbiorem jednobajtowej strony kodowej 897 , która odwzorowuje 0x5C na symbol jena ( ¥ ), a 0x7E na nadkreślenie ( ), po którym następuje kodowanie o nazwie „ibm- 943_P130-1999" na OIOM-ie. Strona kodowa 897 (a zatem także IBM-943 i IBM-932) dodaje również jednobajtowe znaki rysowania pudełek zastępując niektóre znaki kontrolne C0 , jednak mogą one nadal być traktowane jako znaki kontrolne w zależności od kontekstu i są odwzorowywane na znaki kontrolne na OIT.

Układ

Pierwszy bajt
0 1 2 3 4 5 6 7 8 9 A B C D mi F
0
1
2 ! " # $ % & ' ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ A B C D mi F G H I J k Ł M N O
5 P Q R S T u V W X Y Z [ \ ] ^ _
6 ` A B C D mi F G H I J k l M N o
7 P Q R S T u w w X y z { | } ~
8
9
A
B ソ
C
D
E
F
Drugi bajt
0 1 2 3 4 5 6 7 8 9 A B C D mi F
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
 
Niedrukowalny znak ASCII Znak
ASCII
Znak ASCII, który można zastąpić zlokalizowanymi czcionkami
Jednobajtowa katakana
o połowie szerokości Pierwszy bajt znaku dwubajtowego, używany przez JIS X 0208
Pierwszy bajt dwubajtowego znaku NEC lub znaku rozszerzenia wybranego przez NEC
Nieużywany jako pierwszy bajt, nieprzydzielone miejsce w JIS X 0208
Pierwszy bajt dwubajtowego znaku rozszerzenia IBM
Pierwszy bajt dwubajtowego znaku zdefiniowanego przez IBM wyznaczonego przez użytkownika
Nieużywany jako pierwszy bajt, najlepiej dopasowany odwzorowany jako pojedynczy bajt na prywatny use area
Drugi bajt znaku dwubajtowego, którego pierwsza połowa sekwencji JIS była nieparzysta
Drugi bajt znaku dwubajtowego, którego pierwsza połowa sekwencji JIS była parzysta
Nieużywany jako drugi bajt znaku dwubajtowego


Zobacz też

Linki zewnętrzne

Związany z Microsoftem

Związany z IBMem