Microsoftコードページ932
[Wikipedia|▼Menu]
Shift_JISをベースとする。

JIS C 6226が規定する94区 × 94点の領域に拡張文字追加を行なわない。

95 - 114区をユーザ外字領域とする。

115 - 119区にJIS C 6226に非登録のDBCS-Host[1]文字を登録することで、DBCS-Hostの文字セット全体を表現する。

2バイト文字部分だけの符号化文字集合の名称をDBCS-PCとし、コードページ番号[2]として「301」を割り当てる。

1バイト・2バイト文字全体の符号化文字集合のコードページ番号として「932」を割り当てる。

こうしてできたDBCS-PCは1990年発売のDOS/Vにも引き継がれることとなる。
NEC PC-9800

一方NECは、1983年に PC-9800シリーズの漢字処理オプション提供を開始した。特に、MS-DOSおよびCP/M-86搭載機における漢字ROMに収容する文字集合を以下のように定めた。

Shift_JISをベースとする。

JIPS[3]の9 - 13区の特殊文字領域をそのままの区点番号で配置。

JIS C 6226-1978 非漢字・第一水準漢字・第二水準漢字はそのままの字形で、そのままの区点番号に配置。

IBM のメインフレームの「IBM 漢字 (DBCS-Host)」の中でJIS C 6226に登録の無い漢字をIBMのDBCS-PCと同様の並びで89 - 92区に配置[4]。DBCS-PCと違い、115 - 119区ではなく、GL表現も可能なように追加文字全てを 94区内に全て配置した。

OEMコードページの統合

マイクロソフトは1993年、Windows 3.1の日本語版を出すにあたり、「CP932の誕生と発展」節で述べたように多様化した「CP932」の仕様をOEMメーカーの自由に任せるという方針を撤回した。日本のパーソナルコンピュータ市場で、特に大きなシェアを持つ上記2社の統合コードをWindowsにおける日本語標準コードとし、また、これをIANAに「Windows-31J」という名で登録した。IANA登録名の「Windows-31J」とは、読んで字のごとく、「Windows3.1 Japanese」を意味している。IBMはマイクロソフトによる「CP932」の統合を受けて、「Windows-31J」と各文字のコードポイントまで同一にした「CP943」を策定し、同社のOSであるOS/2AIXDBMSであるDB2などに搭載している。

統合の概要は以下のとおりである。
マイクロソフトによるIBM & NEC統合の概要


ベースとなる符号化文字集合としてJIS X 0208-1990を採用。

NECが9 - 13区に登録していた特殊文字の内、13区のものだけを継承。この 13区登録の 83文字のことを「NEC特殊文字」と命名。

NECが89 - 92区に登録していた漢字と非漢字は全て継承。このエリアの374文字のことを「NEC選定IBM拡張文字」と命名。

IBMが115 - 119区に登録していた漢字と非漢字も全て継承。このエリアの388文字のことを「IBM拡張文字」と命名。

上記の統合以後は、「CP932」と言えば、マイクロソフトの技術文書以外でも、一般的に「Windows-31J」を指すようになった。しかし、統合前の文字セットが全く利用されなくなったというわけではない。例として、Javaでは、「CP932」がIBMの「CP932」を指し、「MS932」が「Windows-31J」を指す。JDK 1.4.1以降では「MS932」の代わりに「Windows-31J」というキーワードでも「Windows-31J」文字セットを指定できるようになっている。
Windows-31J に重複登録されたコード

前節で触れたように、「Windows-31J」はNECとIBMのそれぞれのコードを統合して(互換性を維持する形で)作られた経緯があるため文字の重複があり、大まかに言えば「NEC選定IBM拡張文字」と「IBM拡張文字」がほぼまるごと重複している。漢字部分についていえば、すべての漢字がきっかり2つずつ登録されている。

以下、拡張文字を(非符号化)文字集合として詳しく見ると、まずNEC選定IBM拡張は漢字360文字と小文字のローマ数字.mw-parser-output .jis2004font{font-family:"源ノ角ゴシック JP Normal","源ノ角ゴシック JP","Source Han Sans Normal","Source Han Sans","NotoSansJP-DemiLight","Noto Sans CJK JP DemiLight","ヒラギノ角ゴ ProN W3","ヒラギノ角ゴ ProN","Hiragino Kaku Gothic ProN","メイリオ",Meiryo,"新ゴ Pr6N R","A-OTF 新ゴ Pr6N R","小塚ゴシック Pr6N M","IPAexゴシック","Takaoゴシック","XANO明朝U32","XANO明朝","和田研中丸ゴシック2004絵文字","和田研中丸ゴシック2004ARIB","和田研中丸ゴシック2004P4","和田研細丸ゴシック2004絵文字","和田研細丸ゴシック2004ARIB","和田研細丸ゴシック2004P4","和田研細丸ゴシックProN",YOzFont04,"IPA Pゴシック","Yu Gothic UI","Meiryo UI","MS Pゴシック";font-feature-settings:"jp04"1}「@」‐「I」、および「¬」「U」「V」「W」で構成されるが、これらはすべてIBM拡張に含まれる。IBM拡張はこのNEC選定IBM拡張に、大文字のローマ数字「T」‐「]」と「梶v「av「пv「∵」の計14文字を加えたものである。そしてこの差分の14文字はすべてNEC特殊文字にも含まれており、NEC特殊文字はこの14文字と、IBM拡張・NEC選定IBM拡張のいずれにも含まれない69文字で構成される。したがってNEC選定IBM拡張文字とNEC特殊文字を合わせると、過不足のない拡張文字の集合の全体になる。また、これらのうちでJIS X 0208:1990と重複するのは非漢字のみであり、それは3重複である「¬」「∵」の2文字と、NEC特殊文字との2重複である「≒」「≡」「∫」「√」「⊥」「∠」「∩」「∪」の8文字である。なお、JIS X 0208:1990の持つこれら10文字の重複はすべて、JIS X 0208:1983の段階で追加された文字である。








Windows-31Jが符号化の対象とする文字集合IBM拡張文字(388文字)
NEC選定IBM拡張文字(374文字)NEC特殊文字(83文字)
373文字

@ABCDEFGHIUVW
\]^_`abcdefghijklmnopqrstuvwxyz{|}~淫戒期釧厚匙囚嘱穿凧諦日琵放愈簾傅哄奧將ヒ曉檄滯。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラ晴ルレロワン゙゚朗磅糶脣蕣褝踰鋺顫鴾@ABCDEFGHIJKLMNOPQRSTUVW?YZ[\]猪_`abcdefghijklmnopqrst益vwxyz{|礼神祥&漲靖精棋屑口冊収埴箭痩H乳眉方油練傴哈奬廐戔暾?。「」、・ヲァィ諸ェォャュョッーアイウ逸オカ都クケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚瓔磊糺脯蕘襠踴鍄阯イ飯飼館@ABCDEFGH鶴JK13文字

TUVWXYZ[\]gх61文字

@ABCDEFGHIJKLMNOPQRS_`abcdefghijklmnopqrstu~∞ョ援窮欠合紫順島這
1文字
¬1文字
∵8文字
≒≡∫√⊥∠∩∪

6869文字
(省略)
JIS X 0208:1990(6879文字)

重複文字が含まれる領域

重複文字が含まれる領域は以下の表のとおりである。

文字種名コードポイント(16進数表記)区番号重複文字数
JIS X 0208の非漢字(1983年追加文字)の一部-2区10文字
NEC特殊文字8740 - 879C13区22文字
NEC選定IBM拡張文字ED40 - EEFC89 - 92区374文字(全部)
IBM拡張文字FA40 - FC4B115 - 119区388文字(全部)

文字コード変換時の重複文字の影響

文字コード変換を行う際には、この重複文字というのは厄介になる。別の文字コードから、「Windows-31J」に変換する場合に、重複するどちらの文字へと変換するべきかが問題になる。

それに関して、WindowsのAPIの仕様における優先順位は、以下のようになっている。
JIS X 0208-1990の登録文字である場合は、これに統一

例 : 「√(ルート)」、「∵(なぜならば)」、「¬(否定)」


「NEC特殊文字」「IBM拡張文字」が重複する場合は、「NEC特殊文字」に統一

例 : 「aiナンバー)」 、「梶iかっこかぶ)」、「V(大文字ローマ数字の3)」


「NEC選定IBM拡張文字」「IBM拡張文字」が重複する場合は、「IBM拡張文字」に統一

例 : 「ア(たちざき)」 、「(はしごだか)」 、「B(小文字ローマ数字の 3)」

この基準に従って、Microsoft IME によって、「梶iかっこかぶ)」を入力しようとした場合には、IBM 拡張文字のコードである FA5816進 ではなく、NEC 特殊文字としてのコードである 878A16進 が引き当てられる。

文字種別文字数Windows-31J変換後に残る文字数
NEC特殊文字83文字(非漢字83文字)74文字
NEC選定IBM拡張文字374文字(非漢字14文字、漢字360文字)0文字
IBM拡張文字388文字(非漢字28文字、漢字360文字)373文字
合計-447文字(非漢字87文字、漢字360文字)

JIS X 0208-1990の登録文字10文字(「≒」「≡」「∫」「√」「⊥」「∠」「∵」「∩」「∪」「¬」)をJIS78を基準した場合の機種依存文字として扱う場合がある。[5][6]
インターネット上での Windows-31J の利用について

IANAのcharset登録簿には「Windows-31J」が登録されているが、「限定された、または特殊な使用のためのもの」とされており、インターネット上で用いることが推奨されるまでには至っていない。ただし、文字符号化方式としてShift_JISを用いてデータを交換しあう二者間において、明示的に使用が合意されている場合は、Windows-31Jを使っても問題が無い。

Unicode範囲を完全に表現可能なUTF-8等の文字符号化方式を用いてデータの交換をする場合は、話が若干ややこしくなる。IBM拡張文字等のWindows-31J独自追加の文字は、他のJIS X 0208非登録のCJK統合漢字に比べて、異機種(OS / アプリケーション)間でのデータ交換を、文字化けを起こしたりせずにデータのやり取りが正常に行える確率が高いからである。これについては、デスクトップOSとしてのWindowsの普及率が非常に高いことも理由の1つである。機種依存文字の項も併せて参照のこと。

とは言え、UTF-8などのようなUnicodeの登録文字を全て利用できる文字符号化方式を利用している場合であっても、あえてJIS X 0208登録文字だけを用いてデータ交換を行った方が、問題が起こりにくい。

また、Unicodeに変換した際、一部の文字がShift_JISとは異なるコードに割り当てられていることでの文字化けを起こすことがある。Unicode#波ダッシュ・全角チルダ問題および波ダッシュ#Unicodeに関連する問題を参照のこと。
後の文字集合への影響
NEC特殊文字・IBM拡張文字

NEC特殊文字や IBM拡張文字はもともとベンダの独断で作られた文字セットであるが、これがデファクトスタンダードとしての影響力を持った結果として[要出典]現在では各種の公的な規格でも全部または一部が採用されている。
NEC特殊文字
Windows-31J
全83文字を、13区に収録。「≒」「≡」「∫」「√」「⊥」「∠」「∵」「∩」「∪」の9文字は2区にも重複して収録。「∵」の1文字はさらに115区にも重複して収録。
Unicode
83文字全てを基本多言語 (BMP) 面に収録。
JIS X 0212-1990
「avの1文字を2区81点に収録。
JIS X 0213:2004
「≒」「≡」「∫」「√」「⊥」「∠」「∵」「∩」「∪」の9文字は2区に収録。「∑ (N-ARY SUMMATION)」の1文字は収録されていない。6区18点のギリシャ大文字シグマ「Σ」で代用できるため。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:61 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef