文字コード

Last-modified: 2015-06-21 (日) 16:50:42

もろもろ

区点番号

  • 区: 1-94
  • 点: 1-94

1つの区の94字をあらわすのに、上位3bit 2-7、下位4bit 0-15 の 6行16列のマトリクスを用いる。
2/0と7/15には文字を割り当てない。(6*16-2=94)

日本語に関連の文字セット

  • JIS X 0201 文字用図形文字集合 半角英数字。≒ASCII=ISO-8859-x のコード0-127。
  • JIS X 0201 片仮名図形文字集合 半角カナ。
  • JIS X 0208 いわゆる全角文字。第一水準漢字、第二水準漢字、非漢字。78JIS, 83JIS, 90JIS, 97JIS。
  • JIS X 0212 補助漢字。ほとんど使われていないらしい。
  • JIS X 0213 拡張漢字。第三水準漢字、第四水準漢字、非漢字。JIS2000, JIS2004。
  • Windows-31Jの文字セット Windowsの文字。CP932。
  • Unicode

補足

  • JIS X 0213 は、JIS X 0208 を包含。
  • Windows-31J は、以下からなる。
    • JIS X 0201
    • JIS X 0208
    • NEC特殊文字
    • NEC選定IBM拡張文字
    • IBM拡張文字

面・区への文字割り当て状況

※ 以下の表より JIS X 0208と0213と機種依存文字 のほうが正確。

Windows-31JJIS X 0208JIS X 0213
11-2特殊文字← *1
13数字、ラテン文字← *1
14平仮名← *1
15片仮名← *1
16ギリシア文字← *1
17キリル文字← *1
18罫線素片← *1
19-12拡張ラテン文字、丸付き文字、国内実装互換文字、等
113NEC特殊文字同上
114-15第三水準漢字
116-47第一水準漢字← +第三水準漢字
148-84第二水準漢字← +第三水準漢字
185-88第三水準漢字
189-92NEC選定IBM拡張文字第三水準漢字
183-94第三水準漢字
-95-114ユーザー定義外字 *2第三水準漢字
-115-119IBM拡張文字第三水準漢字
21--第四水準漢字
22--
23-5--第四水準漢字
26-7--
28--第四水準漢字
29-12--
213-15--第四水準漢字
216-77--
278-94--第四水準漢字
  • *1 JIS X 0208に対して追加あり。文字の種類は区をまたがって様々。
  • *2 Windows-31Jとしては未使用だが、CP932ではユーザー定義外字となる。

情報源

Windows-31Jの文字セット

wLj1EDd1uvhUu1IA-B6104.png

情報源

文字コード表

JIS X 0208

Windows-31J

JIS X 0213

文字エンコーディング変換マップ

JIS X 0208 ⇔ Unicode

Windows-31J ⇔ Unicode

  • Windows-31J → Unicode
    • 多対一 変換あり。JIS X 0208, NEC特殊, NEC選定IBM拡張, IBM拡張の間で重複の文字が該当。
  • Unicode → Windows-31J
    • Windows-31J → Unicode 変換で、A→XとなるAが複数あるようなX: JIS X 0208, NEC特殊, IBM拡張, の順で、優先度の高いほうに変換される。NEC選定IBM拡張には変換されない。
    • Windows-31J → Unicode 変換で、A→XとなるようなAがないX: (仕様不明)

したがって、Windows-31J→Unicode→Windows-31J で元に戻らない文字がある。

CP51932, eucJP-ms ⇔ Windows-31J, Unicode

CP51932の文字セット

  • Windows-31JからIBM拡張文字を切り捨て (切捨てた文字はNEC特殊文字とNEC選定IBM拡張文字に包含されるので、実質的にWindows-31Jと同じ)

encJP-msの文字セット

  • Windows-31JからNEC選定IBM拡張文字を切り捨て (切捨てた文字はIBM拡張文字に包含されるので、実質的にWindows-31Jと同じ)
  • JIS X 0212を追加
  • CP932と同じ字数の?ユーザー定義文字の空間を持つ

情報源

Java の EUC_JP_Solaris

eucJP-msに近いが、Unicodeへの変換において以下の差異がある。

  • ~、¢、¬などが半角に変換される。(MS932とSJISの差異と同様?)
  • ユーザー定義文字は変換できない。
  • NEC選定IBM拡張文字が変換できる。

情報源

JIS X 0213 ⇔ Unicode

文字エンコーディング変換の挙動調査に使うとよいかもしれない文字例

JIS X 0208範囲でUnicodeへの変換マップの相違の事例があるもの

JIS X 0208とUnicodeの対応。空欄は要調査。

JIS X 0208文字(参考)変換マップ
区点 名称コード0221 *1U *2Win-31J
01-29 EM DASH213DU+2014 —U+2015 ―U+2015 ―
01-33 WAVE DASH2141U+301C 〜U+FF5e ~
01-34 DOUBLE VERTICAL LINE2142U+2016 ‖U+2225 ∥
01-61 MINUS SIGN215DU+2212 −U+FF0D -
01-81 CENT SIGN2171U+00A2 ¢U+FFE0 ¢
01-82 POUND SIGN2172U+00A3 £U+FFE1 £
02-44 NOT SIGN224CU+00AC ¬U+FFE2 ¬
  • *1 JIS X 0221
  • *2 Unicodeコンソーシアム

Javaの場合

情報源

Windows-31Jの文字セット範囲

文字Windows-31JUnicode
特徴0208NEC特殊N選IBMIBM
NEC特殊のみ0x8740U+2460
JIS X 0208, NEC特殊文字で重複0x81E00x8790U+2252
JIS X 0208, NEC特殊文字, IBM拡張文字で重複0x81E60x879A0xFA5BU+2235
JIS X 0208, NEC選定IBM拡張文字, IBM拡張文字で重複0x81CA0xEEF90xFA54U+FFE2
NEC特殊文字, IBM拡張文字で重複0x87550xFA4BU+2161
NEC選定IBM拡張文字, IBM拡張文字で重複0xED950xFAB1U+FA11

その他、変換マップの相違の事例があるもの。

文字Windows-31JUnicode
特徴0208NEC特殊N選IBMIBM
類似の半角文字がある0xEEFA0xFA55U+FFE4 (¦)U+00A6 (¦)

Windows-31J の外で、JIS X 0213 範囲

特徴文字JIS X 0213Unicode
Unicodeの基本多言語面1-94-69U+9DD7
Unicodeの第二面𠀋1-14-2U+2000B
Unicodeでは2文字で表現か゚1-4-87U+304B U+309A

異体字セレクタ

TODO

その他

環境により字形が異なるかもしれない。

名称文字Unicode備考
WAVE DASHU+301CWin XP以前ではU+FF5E ~と上下が反転。
REVERSE SOLIDUS\U+005CUnicode上の定義はバックスラッシュだが、これをJIS X 0201の0x5Cとして見た場合は円マーク。なお、Unicodeで半角円マークはU+00A5 (¥)であり、ISO-8859-1の0xA5に対応する。
TILDE~U+007E半角チルダ。ASCIIではチルダ、JIS X 0201ではオーバーライン。オーバーラインはUnicode上はU+203E (‾)