このページは IANA の登録名は Windows-31J とされ、Windows Codepage 932 や Windows標準文字セットと呼ばれる文字セット、文字エンコーディングについて、私の知りうる範囲で説明をいたします。
IANA の登録では次のようになっています。
Name: Windows-31J MIBenum: 2024 Source: Windows Japanese. A further extension of Shift_JIS to include NEC special characters (Row 13), NEC selection of IBM extensions (Rows 89 to 92), and IBM extensions (Rows 115 to 119). The CCS's are JIS X0201:1997, JIS X0208:1997, and these extensions. This charset can be used for the top-level media type "text", but it is of limited or specialized use (see RFC2278). PCL Symbol Set id: 19K Alias: csWindows31J
文字セットは JIS X 0201:1997 (ラテン文字・片仮名) + JIS X 0208:1997 + NEC特殊文字(13区) + NEC選定IBM拡張文字(89〜92区) + IBM拡張文字(115〜119区) で、符号化方法 (エンコーディングスキーム) は、シフトJIS となっています。
各文字セットに関して Windows-31J で使われる場合の注意点があります。
JIS X 0201 の 7ビット・8ビットコード での 0x7E は OVER LINE となっていますが、Windows-31J では TILDE の字形 (グリフ) が定義されています。JIS X 0201:1997 の改正で、送信者と受信者との間で明示的な合意がある場合は、0x7E の字形を TILDE と同じとして良いとされていますが、あくまでも文字の名称は OVER LINE でなければならないそうです。(JIS X 0201:1997 附属書2 OVER LINE の字形の許容範囲参照)
メモ : OADG109キーボードには OVER LINE が刻印されていますが、Windows-31J では TILDE で表示されるため、初心者のつまづきの1つとなっていていましたが、OADG109Aキーボードでは、刻印を TILDE に変更したようです。
JIS C 6226-1987 で旧JIS漢字とも呼ばれた規格を出発点とし、JIS X 0208-1983 (新JIS漢字)、JIS X 0208-1990、JIS X 0208:1997 と改正されて来ました。
JIS X 0208:1997 は JIS X 0208-1990 と文字セットが同一ですが、規定を明確化し、あいまいさを除去することで、規格としての完成度を高めたものとなっています。この改正での調査結果がベースとなって JIS X 0213:2000 での文字追加が可能となりました。
Windows-31J に関係してくる改正として JIS X 0208-1983 での改正を説明しておきたいと思います。JIS C 6226-1983 からの主な改正点は次の通りです。
2区に39文字の記号が追加されましたが、この中には、後で説明する13区のNEC特殊文字や89〜92区の NEC選定IBM拡張文字、115〜119区のIBM拡張文字の一部も含まれていて、同じ文字がお互いに別々のコード位置に定義されているため、Windows-31J では重複符号化されている事に注意する必要があります。特に Unicode との相互変換では注意を要します。
Windows-31J において2区と13区で重複して定義されている文字は次の9文字です。
∪∩∠⊥≡≒√∵∫
Windows-31J において2区と92区、115区で重複して定義されている文字は次の2文字です。
¬∵
次のシフトJISエンコーディングでの文字コード表で、水色のコード位置の文字が、Windows-31J では他のコード位置で重複符号化されています。灰色の文字は 1区の文字、もしくは JIS C 6226-1978 ですでに 2区に定義されていた文字です。
丸付き数字などは、この13区のNEC特殊文字です。
水色のコード位置の文字は JIS X 0208-1983 で 2 区に追加になった文字と重複しているので注意が必要です。また、灰色のコード位置の文字は 115区の IBM拡張文字の方にも重複して定義されています。
115〜119区の IBM拡張文字のうち、すでに13区に定義されている文字を除いた文字が、NEC によって 89〜92区に定義されました。
水色で示したコード位置の文字は、JIS X 0208-1983 で 2区に追加された文字と重複して定義されています。
IBMによって115〜119区に追加された漢字と非漢字です。
マイクロソフトが日本語版 Windows 3.1 用の文字セットを作成する際に、JIS X 0208-1990 をベースにして、それまで国内で圧倒的なシェアを誇っていた NEC PC-9800シリーズの文字セットとの互換性と、IBM のマシンの両方との互換性を考えて、同じ文字が重複して定義されている 89〜92区と、115〜119区 の両方を含めたものと思われます。
水色で示したコード位置の文字は、JIS X 0208-1983 で 2区に追加された文字と重複して定義されいて(∵に関しては13区、¬に関しては92区にも定義されています)、灰色で示したコード位置の文字は 13区と重複して定義されています。たの色無し (白色) のコード位置の文字に関しても、今までの説明にあるとおり Windows-31J では 89〜92区と重複して定義されています。
IANA の Windows-31J の登録内容には書かれていませんが、Windows Codepage 932 では、95〜114区 (シフトJISで 0xF040〜0xF9FC) をユーザー定義外字の領域としていて、ユーザーが外字エディタで外字を定義して使ったり、市販の外字フォントで人名用の字形や印刷などに用いる記号などを使えるようになっています。
作成者 森山 将之