Strona kodowa 932 (Microsoft Windows)
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
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
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Zobacz też
Linki zewnętrzne
- Dokumentacja firmy Microsoft dotycząca strony kodowej systemu Windows 932
- Plik strony kodowej dla MS932
- Mapowanie strony kodowej 932 firmy Microsoft na Unicode
- Demonstracja strony kodowej ICU 943C (ibm-943_P15A-2003 alias windows-31j)