もろもろ
区点番号
- 区: 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-31J | JIS X 0208 | JIS X 0213 |
1 | 1-2 | → | 特殊文字 | ← *1 |
1 | 3 | → | 数字、ラテン文字 | ← *1 |
1 | 4 | → | 平仮名 | ← *1 |
1 | 5 | → | 片仮名 | ← *1 |
1 | 6 | → | ギリシア文字 | ← *1 |
1 | 7 | → | キリル文字 | ← *1 |
1 | 8 | → | 罫線素片 | ← *1 |
1 | 9-12 | 拡張ラテン文字、丸付き文字、国内実装互換文字、等 | ||
1 | 13 | NEC特殊文字 | 同上 | |
1 | 14-15 | 第三水準漢字 | ||
1 | 16-47 | 第一水準漢字 | ← +第三水準漢字 | |
1 | 48-84 | 第二水準漢字 | ← +第三水準漢字 | |
1 | 85-88 | 第三水準漢字 | ||
1 | 89-92 | NEC選定IBM拡張文字 | 第三水準漢字 | |
1 | 83-94 | 第三水準漢字 | ||
- | 95-114 | ユーザー定義外字 *2 | 第三水準漢字 | |
- | 115-119 | IBM拡張文字 | 第三水準漢字 | |
2 | 1 | - | - | 第四水準漢字 |
2 | 2 | - | - | |
2 | 3-5 | - | - | 第四水準漢字 |
2 | 6-7 | - | - | |
2 | 8 | - | - | 第四水準漢字 |
2 | 9-12 | - | - | |
2 | 13-15 | - | - | 第四水準漢字 |
2 | 16-77 | - | - | |
2 | 78-94 | - | - | 第四水準漢字 |
- *1 JIS X 0208に対して追加あり。文字の種類は区をまたがって様々。
- *2 Windows-31Jとしては未使用だが、CP932ではユーザー定義外字となる。
情報源
- Windows-31の各区の割り当て
Windows-31Jの文字セット
情報源
- JIS X 0208 の全文字がUnicode 基本多言語面に含まれる
- NEC特殊文字とIBM拡張文字(したがってNEC選定IBM拡張文字も)の全文字がUnicode 基本多言語面に含まれる。
- JIS X 0213 の全文字が Unicode 3.1, 3.2に含まれる。ただし、半濁点付きかな(「か゜」など)と一部の記号は、Unicode 2文字の組み合わせで表す。収録位置は基本多言語面と第二面(U+20000~)にまたがる。
- Windows-31J内での文字セットの重複状況
- NEC特殊文字とJIS X 0213の対応関係について: JIS X 0208との重複分と、∑ (N-ARY SUMMATION) を除き、同じ区点番号に配置
- IBM拡張文字とJIS X 0213の対応一覧
- JIS X 0208と0213と機種依存文字 の 「IBM拡張文字に含まれていた文字は JIS X 2013 で使えるのか」
文字コード表
JIS X 0208
Windows-31J
- 全部
- 重複一覧
- NEC特殊文字、NEC選定IBM拡張文字、IBM拡張文字
JIS X 0213
文字エンコーディング変換マップ
JIS X 0208 ⇔ Unicode
- 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 で元に戻らない文字がある。
- 一覧表
- 解説
- 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と同じ字数の?ユーザー定義文字の空間を持つ
情報源
- CP51932/eucJP-msの区の割り当て
- eucJP-ms ⇔ Unicode 変換規則
- eucJP-ms ⇔ Unicode 変換テーブル
- Unicode とユーザ定義文字・ベンダ定義文字に関する問題点と解決策の 添付資料 コード変換規則 の「1. Microsoft Windows 3.51 式の変換」
- CP51932
- CP51932 ⇔ Unicode 変換テーブル
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 *1 | U *2 | Win-31J | |
01-29 EM DASH | 213D | ― | U+2014 — | U+2015 ― | U+2015 ― |
01-33 WAVE DASH | 2141 | ~ | U+301C 〜 | U+FF5e ~ | |
01-34 DOUBLE VERTICAL LINE | 2142 | ∥ | U+2016 ‖ | U+2225 ∥ | |
01-61 MINUS SIGN | 215D | - | U+2212 − | U+FF0D - | |
01-81 CENT SIGN | 2171 | ¢ | U+00A2 ¢ | U+FFE0 ¢ | |
01-82 POUND SIGN | 2172 | £ | U+00A3 £ | U+FFE1 £ | |
02-44 NOT SIGN | 224C | ¬ | U+00AC ¬ | U+FFE2 ¬ |
- *1 JIS X 0221
- *2 Unicodeコンソーシアム
Javaの場合
- Shift_JIS, SJIS: 上記表のUCに従う。ただし:
- EM DASHはU+0214
- windows-31j, MS932: 上記表のWin-31J
- x-IBM943, Cp943: 文字による→http://www.m-bsys.com/character-code/java-sjis
情報源
Windows-31Jの文字セット範囲
文字 | Windows-31J | Unicode | ||||
特徴 | 0208 | NEC特殊 | N選IBM | IBM | ||
NEC特殊のみ | ① | 0x8740 | U+2460 | |||
JIS X 0208, NEC特殊文字で重複 | ≒ | 0x81E0 | 0x8790 | U+2252 | ||
JIS X 0208, NEC特殊文字, IBM拡張文字で重複 | ∵ | 0x81E6 | 0x879A | 0xFA5B | U+2235 | |
JIS X 0208, NEC選定IBM拡張文字, IBM拡張文字で重複 | ¬ | 0x81CA | 0xEEF9 | 0xFA54 | U+FFE2 | |
NEC特殊文字, IBM拡張文字で重複 | Ⅱ | 0x8755 | 0xFA4B | U+2161 | ||
NEC選定IBM拡張文字, IBM拡張文字で重複 | 﨑 | 0xED95 | 0xFAB1 | U+FA11 |
その他、変換マップの相違の事例があるもの。
文字 | Windows-31J | Unicode | |||||
特徴 | 0208 | NEC特殊 | N選IBM | IBM | |||
類似の半角文字がある | ¦ | 0xEEFA | 0xFA55 | U+FFE4 (¦) | U+00A6 (¦) |
Windows-31J の外で、JIS X 0213 範囲
特徴 | 文字 | JIS X 0213 | Unicode |
Unicodeの基本多言語面 | 鷗 | 1-94-69 | U+9DD7 |
Unicodeの第二面 | 𠀋 | 1-14-2 | U+2000B |
Unicodeでは2文字で表現 | か゚ | 1-4-87 | U+304B U+309A |
異体字セレクタ
TODO
その他
環境により字形が異なるかもしれない。
名称 | 文字 | Unicode | 備考 |
WAVE DASH | 〜 | U+301C | Win XP以前ではU+FF5E ~と上下が反転。 |
REVERSE SOLIDUS | \ | U+005C | Unicode上の定義はバックスラッシュだが、これをJIS X 0201の0x5Cとして見た場合は円マーク。なお、Unicodeで半角円マークはU+00A5 (¥)であり、ISO-8859-1の0xA5に対応する。 |
TILDE | ~ | U+007E | 半角チルダ。ASCIIではチルダ、JIS X 0201ではオーバーライン。オーバーラインはUnicode上はU+203E (‾) |