jsで現在ページの文字コード取得/各ブラウザでの値の違い


ひょんなことから、jsから現在のページで設定されている文字コードを取得する必要が出たので、現在主要なブラウザでの値を調べてみました。

ちなみに、取得するのに使用したコードは下記になります。

if (document.all) {
	alert(document.charset);
} else {
	alert(document.characterSet);
}

前提条件として、metaタグとして下記のように指定された文字コードとファイルの文字コードは一致させています。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

各ブラウザの結果は下記になります。

Browser/
Charset
UTF-8 utf-8 utf8 Shift_JIS shift_jis sjis EUC-JP euc-jp euc_jp
Win
IE8
utf-8 utf-8 shift_jis shift_jis shift_jis shift_jis euc-jp euc-jp shift_jis
Win
FF3.6
UTF-8 UTF-8 UTF-8 Shift_JIS Shift_JIS Shift_JIS EUC-JP EUC-JP Shift_JIS
Win
Chrome
UTF-8 UTF-8 UTF-8 Shift_JIS Shift_JIS Shift_JIS EUC-JP EUC-JP EUC-JP
Win
Opera 10.61
utf-8 utf-8 utf-8 shift_jis shift_jis shift_jis euc-jp euc-jp shift_jis
Win
Safari 5.0.1
UTF-8 UTF-8 UTF-8 Shift_JIS Shift_JIS Shift_JIS EUC-JP EUC-JP EUC-JP
Ubuntu
Chrome
UTF-8 UTF-8 UTF-8 Shift_JIS Shift_JIS Shift_JIS EUC-JP EUC-JP EUC-JP
Ubuntu
FF3.6
UTF-8 UTF-8 UTF-8 Shift_JIS Shift_JIS Shift_JIS EUC-JP EUC-JP Shift_JIS
Ubuntu
Opera 10.61
utf-8 utf-8 utf-8 shift_jis shift_jis shift_jis euc-jp euc-jp shift_jis

euc_jpを指定した場合に若干ブラウザ間で挙動が異なるようですね。
また、IE8でのutf8を指定した際にshift_jisが戻ってきたのも気になります。

関連記事