ウェブページの文字コード(もう少し詳しく)
実際にウェブページで用いられている文字コードについて,もう少し詳しく調べてみました.調べた内容は,HTTP レスポンスヘッダに記述されている charset,本文の先頭にある BOM(Byte Order Mark),XML 宣言(<?xml?>)の encoding,META タグ(<meta>)を使って指定されている charset に加えて,iconv による utf-8 への変換に成功した文字コードの組み合わせです.
文書数 | ヘッダ | BOM | XML 宣言 | META タグ | 変換成功 | 補足 ※ |
---|---|---|---|---|---|---|
114426 | - | - | - | shift_jis | shift_jis | ok |
83328 | utf-8 | - | - | utf-8 | utf-8 | ok |
46140 | - | - | - | utf-8 | utf-8 | ok |
35727 | euc-jp | - | - | euc-jp | euc-jp | ok |
35352 | - | - | - | euc-jp | euc-jp | ok |
20851 | shift_jis | - | - | shift_jis | shift_jis | ok |
18029 | - | - | - | shift_jis | cp932 | 特殊文字・拡張文字 |
15943 | - | - | - | - | cp932 | 指定なし |
11808 | - | - | - | x-sjis | cp932 | 表記ミス,特殊文字・拡張文字 |
9680 | utf-8 | - | utf-8 | utf-8 | utf-8 | ok |
8431 | - | - | utf-8 | utf-8 | utf-8 | ok |
6939 | euc-jp | - | - | euc-jp | euc-jp-ms | 特殊文字・拡張文字 |
6303 | - | - | shift_jis | shift_jis | shift_jis | ok |
5559 | windows-31j | - | - | shift_jis | windows-31j | 複数指定 |
4629 | euc-jp | - | euc-jp | euc-jp | euc-jp | ok |
3494 | utf-8 | - | - | - | utf-8 | ok |
3070 | - | utf-8 | - | utf-8 | utf-8 | ok |
3049 | shift_jis | - | shift_jis | shift_jis | shift_jis | ok |
2884 | - | - | - | euc-jp | euc-jp-ms | 特殊文字・拡張文字 |
2814 | shift_jis | - | - | - | shift_jis | ok |
2548 | shift_jis | - | - | shift_jis | cp932 | 特殊文字・拡張文字 |
1754 | euc-jp | - | - | - | euc-jp | ok |
1626 | - | - | euc-jp | euc-jp | euc-jp | ok |
1554 | utf-8 | utf-8 | - | utf-8 | utf-8 | ok |
1363 | - | - | - | euc-jp | - | 変換失敗 |
1243 | - | - | - | shift-jis | shift-jis | 表記ミス |
1187 | - | - | - | shift_jis | - | 変換失敗 |
993 | - | - | - | utf-8 | - | 変換失敗 |
984 | - | - | - | - | euc-jp-ms | 指定なし |
934 | - | - | - | iso-2022-jp | iso-2022-jp | ok |
915 | utf-8 | - | - | utf-8 | - | 変換失敗 |
907 | shift-jis | - | - | shift_jis | shift-jis | 表記ミス |
853 | - | - | - | x-euc-jp | euc-jp-ms | 表記ミス,特殊文字・拡張文字 |
831 | euc-jp | - | euc-jp | euc-jp | euc-jp-ms | 特殊文字・拡張文字 |
781 | windows-31j | - | shift_jis | shift_jis | windows-31j | 複数指定 |
757 | none | - | - | shift_jis | shift_jis | 不審なヘッダ |
653 | sjis | - | - | shift_jis | sjis | 表記ミス |
643 | - | - | shift_jis | shift_jis | cp932 | 特殊文字・拡張文字 |
633 | euc-jp | - | - | euc-jp | - | 変換失敗 |
596 | shift_jis | - | - | shift-jis | shift_jis | 表記ミス |
566 | - | - | - | gb2312 | - | 変換失敗 |
547 | - | - | - | gb2312 | gb2312 | 中国語 |
466 | cp943c | - | - | shift_jis | shift_jis | 表記ミス |
465 | ms932 | - | - | shift_jis | ms932 | 表記ミス,複数指定 |
459 | - | - | - | big5 | big5 | 中国語 |
441 | euc-jp | - | - | x-euc-jp | euc-jp | 表記ミス |
433 | - | - | - | - | - | 指定なし,変換失敗 |
431 | utf-8 | - | utf-8 | utf-8 | - | 変換失敗 |
408 | utf8 | - | - | utf-8 | utf-8 | 表記ミス |
405 | shift_jis | - | shift_jis | shift_jis | cp932 | 特殊文字・拡張文字 |
404 | windows-31j | - | - | windows-31j | windows-31j | ok |
380 | euc-jp | - | - | - | euc-jp-ms | 特殊文字・拡張文字 |
377 | none | - | - | euc-jp | euc-jp | 不審なヘッダ |
364 | shift_jis | - | - | - | cp932 | 特殊文字・拡張文字 |
354 | iso-2022-jp | - | - | iso-2022-jp | iso-2022-jp | ok |
354 | shift_jis | - | - | x-sjis | shift_jis | 表記ミス |
351 | - | - | - | gbk | gbk | 中国語 |
340 | utf-8 | - | - | shift_jis | utf-8 | 複数指定 |
339 | shift_jis | - | - | sjis | shift_jis | 表記ミス |
329 | x-euc-jp | - | - | x-euc-jp | euc-jp-ms | 表記ミス,特殊文字・拡張文字 |
301 | utf-8 | - | utf-8 | - | utf-8 | ok |
288 | - | - | - | big5 | - | 変換失敗 |
281 | utf8 | - | utf-8 | utf-8 | utf-8 | 表記ミス |
272 | - | - | - | euc-kr | euc-kr | 韓国語 |
254 | - | - | - | x-sjis | - | 変換失敗 |
239 | windows-31j | - | - | - | windows-31j | ok |
228 | shift_jis | - | - | shift_jis | - | 変換失敗 |
211 | iso-2022-jp | - | - | - | iso-2022-jp | ok |
199 | cp943c | - | shift_jis | shift_jis | shift_jis | 表記ミス,複数指定 |
198 | none | - | - | utf-8 | utf-8 | 不審なヘッダ |
191 | shift_jis | - | - | euc-jp | shift_jis | 複数指定 |
183 | - | - | shift_jis | - | shift_jis | ok |
173 | sjis | - | shift_jis | shift_jis | sjis | 表記ミス |
169 | none | - | shift_jis | shift_jis | shift_jis | 不審なヘッダ |
156 | - | utf-8 | - | - | utf-8 | ok |
150 | euc-jp | - | euc-jp | euc-jp | - | ok |
145 | none | - | - | shift_jis | cp932 | 不審なヘッダ,特殊文字・拡張文字 |
144 | - | - | euc-jp | euc-jp | euc-jp-ms | 特殊文字・拡張文字 |
143 | gbk | - | - | gbk | gbk | 中国語 |
138 | - | utf-8 | - | utf-8 | - | 変換失敗 |
136 | euc-jp | - | - | shift_jis | euc-jp | 複数指定 |
133 | euc_jp | - | - | euc-jp | euc-jp | 表記ミス |
128 | shift-jis | - | - | shift-jis | shift-jis | 表記ミス |
127 | none | - | - | - | cp932 | 不審なヘッダ,指定なし |
126 | shift_jis | - | - | windows-31j | shift_jis | 複数指定 |
121 | - | - | - | sjis | sjis | 表記ミス |
119 | utf-8 | - | - | iso-8859-1 | utf-8 | 複数指定 |
117 | gb2312 | - | - | gb2312 | - | 変換失敗 |
114 | shift_jis | - | - | shift-jis | cp932 | 表記ミス,特殊文字・拡張文字 |
113 | euc-jp | - | euc-jp | - | euc-jp | ok |
108 | shift_jis | - | - | utf-8 | shift_jis | 複数指定 |
103 | big5 | - | - | big5 | - | 変換失敗 |
102 | - | - | - | iso-2022-jp | iso-2022-jp-ms | 特殊文字・拡張文字 |
101 | shift-jis | - | - | - | shift-jis | 表記ミス |
99 | big5 | - | - | big5 | big5 | 中国語 |
98 | utf-8 | - | - | euc-jp | utf-8 | 複数指定 |
97 | cswindows31j | - | - | shift_jis | cswindows31j | 複数指定 |
97 | jis | - | - | iso-2022-jp | iso-2022-jp | 表記ミス |
96 | shift_jis | - | shift_jis | - | shift_jis | ok |
95 | euc-jp | - | - | euc_jp | euc-jp | 表記ミス |
- ※ 補足について
- ok:特に問題なさそうなもの
- 特殊文字・拡張文字:cp932, eucjp-ms, iso-2022-jp-ms に切り替えることで変換できたもの
- 指定なし:文字コードの指定が見当たらないもの
- 表記ミス:なんとなく分かるけれど,IANA には未登録な文字コードが指定されているもの
- 複数指定:複数の文字コードが指定されているもの(euc-jp, shift_jis, utf-8 が混ざっているものは危険)
- 変換失敗:指定されている文字コードに加えて cp932, eucjp-ms, iso-2022-jp-ms, utf-8 を試しても変換できなかったもの
- 不審なヘッダ:ヘッダで指定されている charset が怪しいもの
# 後になって気づいたのですが,cp932 のところは windows-31j で置き換えた方が良さそうです.
文字コードのバージョンについて
shift_jis, euc-jp, iso-2022-jp については,どのバージョンを想定しているのか分からないという問題があります.文字コードのバージョンを気にする人は少数派でしょうし,バージョンを指定する妥当な手段もないのが現状だと思います.
独自拡張を含む文字集合に対する文字コード(windows-31j はあるけど,windows-31j に対応する euc-jp, iso-2022-jp の拡張版)や JIS X 0213:2004(JIS2004)に対応した文字コードを使いたいとき,どうすれば良いのか分かりません.