サーバー関連メニュー

トップページ

Google
WWWを検索
サイト内を検索

.htaccess で文字コード指定

このエントリーをはてなブックマークに追加 Check Clip to Evernote

日本語は文字コードが何種類もあります。また言語コードが違う海外のブラウザーからウェブページを見られる可能性もあります。しかしブラウザーが文字コードを自動判別できないときがあるので、そのときは文字化けをしてしまいます。

そういうことが無いように、従来はMETAタグを使ってブラウザーに文字コードを通知してきましたが、本来ならば MIME ヘッダーに文字コード情報を付加することが推奨されています。.htaccess を使って、 MIME ヘッダーに文字コード情報を付加してみましょう。

まず下準備として、httpd.conf を修正します。.htaccess を用いたいディレクトリーのディレクティブ部分の AllowOverride に FileInfo を追加してください。

httpd.conf の修正

# AllowOverride None を修正し、FileInfo を追加する
  AllowOverride FileInfo AuthConfig Limit

httpd.conf を書き換えた後は、Apache を再起動します。

準備が終わったなら .htaccess を作成もしくは修正をすれば、文字コード情報が MIME ヘッダーに追加されます。以下の例では、*.html *.shtml というファイルの文字コードを Shift_JIS に規定しています。

.htaccess の例

AddType "text/html; charset=Shift_JIS" html shtml

MIMEヘッダーによる文字コード指定は W3C 推奨なのですが、実は幾つか問題があります。Internet Explorer 6.0 が MIME ヘッダーでの指定を認識しません。また .htaccess はそれなりオーバーヘッドがある方法なので、負荷が高いサーバーは httpd.conf で直接指定したほうが良いでしょう。