[掲載 2023年12月23日] [更新 2024年02月15日] |
各種の文字符号化方式の文字コード | |
動作確認等 | Windows 10 ビルド 19043 Pro 64 bit |
各種の文字符号化方式の文字コード |
各種の文字符号化方式の文字コードの例です.JIS X 0208 の 16 区の文字だけを対象にしています. |
[備考] 文字符号化方式を意識しなくても,文字符号化方式の違いによる文字化けを回避するために,多くのアブがこの違いを自動的に処理するようになっています. |
01_同じ文字でも文字符号化方式が異なると文字コードは異なる |
文字符号化方式 ISO-2022-JP, ShiftJIS, EUC-JP の文字コード表の一部です. 下表は,文字符号化方式 ISO-2022-JP の文字コードです. |
JIS | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
3020 | 亜 | 唖 | 娃 | 阿 | 哀 | 愛 | 挨 | 姶 | 逢 | 葵 | 茜 | 穐 | 悪 | 握 | 渥 | |
3030 | 旭 | 葦 | 芦 | 鯵 | 梓 | 圧 | 斡 | 扱 | 宛 | 姐 | 虻 | 飴 | 絢 | 綾 | 鮎 | 或 |
3040 | 粟 | 袷 | 安 | 庵 | 按 | 暗 | 案 | 闇 | 鞍 | 杏 | 以 | 伊 | 位 | 依 | 偉 | 囲 |
3050 | 夷 | 委 | 威 | 尉 | 惟 | 意 | 慰 | 易 | 椅 | 為 | 畏 | 異 | 移 | 維 | 緯 | 胃 |
3060 | 萎 | 衣 | 謂 | 違 | 遺 | 医 | 井 | 亥 | 域 | 育 | 郁 | 磯 | 一 | 壱 | 溢 | 逸 |
3070 | 稲 | 茨 | 芋 | 鰯 | 允 | 印 | 咽 | 員 | 因 | 姻 | 引 | 飲 | 淫 | 胤 | 蔭 |
下表は,文字符号化方式 EUC-JP の文字コードです. UNIX 系の OS である Linux 系の各ディストリビューションでも使用されていました. |
EUC-JP | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
B0A0 | 亜 | 唖 | 娃 | 阿 | 哀 | 愛 | 挨 | 姶 | 逢 | 葵 | 茜 | 穐 | 悪 | 握 | 渥 | |
B0B0 | 旭 | 葦 | 芦 | 鯵 | 梓 | 圧 | 斡 | 扱 | 宛 | 姐 | 虻 | 飴 | 絢 | 綾 | 鮎 | 或 |
B0C0 | 粟 | 袷 | 安 | 庵 | 按 | 暗 | 案 | 闇 | 鞍 | 杏 | 以 | 伊 | 位 | 依 | 偉 | 囲 |
B0D0 | 夷 | 委 | 威 | 尉 | 惟 | 意 | 慰 | 易 | 椅 | 為 | 畏 | 異 | 移 | 維 | 緯 | 胃 |
B0E0 | 萎 | 衣 | 謂 | 違 | 遺 | 医 | 井 | 亥 | 域 | 育 | 郁 | 磯 | 一 | 壱 | 溢 | 逸 |
B0F0 | 稲 | 茨 | 芋 | 鰯 | 允 | 印 | 咽 | 員 | 因 | 姻 | 引 | 飲 | 淫 | 胤 | 蔭 |
下表は,文字符号化方式 Shift_JIS の文字コードです. HP-UX, IBM の AIX, Solaris などの OS は,Shift_JIS も実装しました. |
Shift_JIS | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
8890 | 亜 | |||||||||||||||
88A0 | 唖 | 娃 | 阿 | 哀 | 愛 | 挨 | 姶 | 逢 | 葵 | 茜 | 穐 | 悪 | 握 | 渥 | 旭 | 葦 |
88B0 | 芦 | 鯵 | 梓 | 圧 | 斡 | 扱 | 宛 | 姐 | 虻 | 飴 | 絢 | 綾 | 鮎 | 或 | 粟 | 袷 |
88C0 | 安 | 庵 | 按 | 暗 | 案 | 闇 | 鞍 | 杏 | 以 | 伊 | 位 | 依 | 偉 | 囲 | 夷 | 委 |
88D0 | 威 | 尉 | 惟 | 意 | 慰 | 易 | 椅 | 為 | 畏 | 異 | 移 | 維 | 緯 | 胃 | 萎 | 衣 |
88E0 | 謂 | 違 | 遺 | 医 | 井 | 亥 | 域 | 育 | 郁 | 磯 | 一 | 壱 | 溢 | 逸 | 稲 | 茨 |
88F0 | 芋 | 鰯 | 允 | 印 | 咽 | 員 | 因 | 姻 | 引 | 飲 | 淫 | 胤 | 蔭 |
02_同じ文字コードでも文字符号化方式が異なると文字は異なる |
同じ文字でも,文字符号化方式が異なれば文字コードが違うのですから,当然,文字コードが同じでも,文字符号化方式が異なれば文字が違います.ただし,ISO-2022-jP, Shift_JIS, EUC-JP では,基本的に,互いに文字コードが重複しないように符号化しています. 次の表は,文字コードが上の ShiftJIS の表と同じ領域の UTF-16 の文字のリストです.この表には,Shift_JIS にはない文字があります. Shift_JIS の環境で作成したテキストを,エンコードの処理をしないで,Unicode の UTF-16 で文字を扱うアプリで表示すると,このことが原因で文字化けします. |
UTF-16 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
8890 | 袐 | 袑 | 袒 | 袓 | 袔 | 袕 | 袖 | 袗 | 袘 | 袙 | 袚 | 袛 | 袜 | 袝 | 袞 | 袟 |
88A0 | 袠 | 袡 | 袢 | 袣 | 袤 | 袥 | 袦 | 袧 | 袨 | 袩 | 袪 | 被 | 袬 | 袭 | 袮 | 袯 |
88B0 | 袰 | 袱 | 袲 | 袳 | 袴 | 袵 | 袶 | 袷 | 袸 | 袹 | 袺 | 袻 | 袼 | 袽 | 袾 | 袿 |
88C0 | 裀 | 裁 | 裂 | 裃 | 裄 | 装 | 裆 | 裇 | 裈 | 裉 | 裊 | 裋 | 裌 | 裍 | 裎 | 裏 |
88D0 | 裐 | 裑 | 裒 | 裓 | 裔 | 裕 | 裖 | 裗 | 裘 | 裙 | 裚 | 裛 | 補 | 裝 | 裞 | 裟 |
88E0 | 裠 | 裡 | 裢 | 裣 | 裤 | 裥 | 裦 | 裧 | 裨 | 裩 | 裪 | 裪 | 裬 | 裭 | 裮 | 裯 |
88F0 | 裰 | 裱 | 裲 | 裳 | 裴 | 裵 | 裶 | 裷 | 裸 | 裹 | 裺 | 裻 | 裼 | 製 | 裾 | 裿 |
文字コードが 88A0 から 88AF の文字は以下のようになっています. |
88A0 + | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
Shift_JIS | 唖 | 娃 | 阿 | 哀 | 愛 | 挨 | 姶 | 逢 | 葵 | 茜 | 穐 | 悪 | 握 | 渥 | 旭 | 葦 |
UTF-16 | 袠 | 袡 | 袢 | 袣 | 袤 | 袥 | 袦 | 袧 | 袨 | 袩 | 袪 | 被 | 袬 | 袭 | 袮 | 袯 |
Windows 10 のメモ帳を起動して,上の表の Shift_JIS の文字を Shift_JIS (ANSI) で保存します. テキストを UTF-16 (UTF-16LE または UTF-16BE) で保存すると,先頭に BOM と呼ばれる識別用のデータが追加されます.テキストを UTF-16 として読み込む時は,先頭のデータをこの BOM と解釈して処理します.今回は Shift_JIS で保存していますから,ディスクに保存されているのは Shift_JIS の文字コードだけです.その結果,以下のように文字化けします. これが,エンコードの処理がない時の現実です. 多くのアプリは自動でエンコードの処理をしてくれれますから,実際にはこのような文字けが起こることは,ほとんどありません.Shift_JIS で保存したテキストは,Shift_JIS のテキストとして読み込んでくれます.このテストで使用している文字は,全て JIS X 0208 にある文字です. |
Shift_JIS で保存 | 唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦 |
UTF-16 LE で読込み | ꂈꆈꊈꎈꒈꖈꚈꞈꢈꦈꪈꮈ겈궈꺈꾈 |
UTF-8 で読込み | ������������������ |
帆にも,例えば,文字コードが 8740 から 874F の文字は以下のようになっています. |
8740 + | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
Shift_JIS | ① | ② | ③ | ④ | ⑤ | ⑥ | ⑦ | ⑧ | ⑨ | ⑩ | ⑪ | ⑫ | ⑬ | ⑭ | ⑮ | ⑯ |
Mac-Japanese | ㈰ | ㈪ | ㈫ | ㈬ | ㈭ | ㈮ | ㈯ | ㉀ | ㈷ | ㉂ | ㉃ | ㈹ | ㈺ | ㈱ | ㈾ | ㈴ |
UTF-16 | 蝀 | 蝁 | 蝂 | 蝃 | 蝄 | 蝅 | 蝆 | 蝇 | 蝈 | 蝉 | 蝊 | 蝋 | 蝌 | 蝍 | 蝎 | 蝏 |
[備考] |
03_文字化けの文字 |
上の文字化けの表で,背景に色がある縦長の文字はジャワ文字です.コードポイント (文字コード) は U+A988 です.この文字は Javanese Text フォントに収録されています.このフォントは,Windows 10 には標準でインストールされています. 文字化けというのは,予期しない文字が表示される現象のことです.上の UTF-16 LE の場合,その多くは実際の文字です.例えば,1 番目と 6 番目の文字のコードポイントと収録フォントは以下のようになっています. |
文字 | UTF-16 | フォント | 説明 |
ꂈ | U+A088 | Microsoft Yi Ba | 中国の雲南省,四川省などのイ族の文字.イ文字 |
ꖈ | U+A588 | Ebrima | ソマリ語の文字.ヴァイ文字 |
四角形のグリフはトーフ文字 (豆腐文字) と言って,そのコードポイントには登録されている文字がないか,描画用に指定したフォントにもフォントリンクのフォントにも文字がないことを意味しています.四角形にバツのグリフも同じです. |
UTF-16 | 文字 | フォント | 説明 |
U+A888 | ꢈ | Noto Sans Saurashtra | 縦長のジャワ文字の前の文字 インド南部のサウラーシュトラ語の文字 |
U+AA88 | ꪈ | Noto Sans Tai Viet | 縦長のジャワ文字の後の文字 ベトナム北西部,ラオス北部の言語の文字 タイ・ヴィエト文字 |
UTF-8 の文字化け � は,読み込んだデータが UTF-8 の文字コードとして認識できないことを意味しています.この位置の文字コードは UTF-8 の EF BF BD になります.したがって,表示に使用するフォントを変更しても,この文字のままです.トーフ文字のように具体的な文字にはなりません. トーフ文字や四角にバツのグリフの位置の文字コードはそのままです.該当する文字の描画データがフォントファイルにない場合に,代替え文字としてトーフ文字や四角にバツのグリフを描画します. |
[備考] |
04_フォントにない文字コードの文字の代替グリフ |
コードポイントに文字が登録されていないか,文字が登録されていてもフォントには収録されていない文字の場合,代わりに表示されるグリフには下図のようなものがあります.描画に使用するフォントによって異なるのですが,1 番目のトーフと 2 番目の四角にバツが多いようです.フォントによっては,何も描画しなかったり,半角または全角のスペースを描画する場合もあります. 下図は,U+1FBF0 - U+1FBF4 の文字を Windows 10 のメモ帳に,フォントを変えてテストしています.これらの文字は,Windows 10 に標準でインストールされているフォントには収録されていません. |
図1 | |
図2 | |
図3 | |
図4 | |
図5 | |
図6 |
テストに使用した文字は,以下の最初の 5 文字です. |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
1FBF0 | 🯰 | 🯱 | 🯲 | 🯳 | 🯴 | 🯵 | 🯶 | 🯷 | 🯸 | 🯹 |
この他,〓 (U+3013) という文字が使われることがあります.これは「ダケ文字 (下駄文字)」と呼ばれています.ゲタ文字は,手書き文字の認識処理の結果,認識できなかった文字の代替え文字として使用されています. |
[備考 1] |
[備考 2] |
05_UTF-8 の文字コード |
上で,UTF-16 の文字コードが 8890 - 88FF の文字を掲載しました.同じ文字の UTF-8 の文字コードは以下のようになります.この文字の範囲では UTF-16 は 2 バイトですが,UTF-8 は 3 バイトの文字です.UTF-8 は,文字の種類によってバイト数が異なります. |
UTF-8 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
E8 A2 90 | 袐 | 袑 | 袒 | 袓 | 袔 | 袕 | 袖 | 袗 | 袘 | 袙 | 袚 | 袛 | 袜 | 袝 | 袞 | 袟 |
E8 A2 A0 | 袠 | 袡 | 袢 | 袣 | 袤 | 袥 | 袦 | 袧 | 袨 | 袩 | 袪 | 被 | 袬 | 袭 | 袮 | 袯 |
E8 A2 B0 | 袰 | 袱 | 袲 | 袳 | 袴 | 袵 | 袶 | 袷 | 袸 | 袹 | 袺 | 袻 | 袼 | 袽 | 袾 | 袿 |
E8 A3 80 | 裀 | 裁 | 裂 | 裃 | 裄 | 装 | 裆 | 裇 | 裈 | 裉 | 裊 | 裋 | 裌 | 裍 | 裎 | 裏 |
E8 A3 90 | 裐 | 裑 | 裒 | 裓 | 裔 | 裕 | 裖 | 裗 | 裘 | 裙 | 裚 | 裛 | 補 | 裝 | 裞 | 裟 |
E8 A3 A0 | 裠 | 裡 | 裢 | 裣 | 裤 | 裥 | 裦 | 裧 | 裨 | 裩 | 裪 | 裪 | 裬 | 裭 | 裮 | 裯 |
E8 A3 B0 | 裰 | 裱 | 裲 | 裳 | 裴 | 裵 | 裶 | 裷 | 裸 | 裹 | 裺 | 裻 | 裼 | 製 | 裾 | 裿 |