apacheで文字化けが起きたときの対処法

2010年2月14日

デフォルトエンコーディングがUTF-8のシステムで、S-JISのHTMLをホスティングするときに、 

いくらHTML内にDOCTYPEやmetaタグにて「charset=shift_jis」と書いてあっても文字化けする〜。 と困った経験はありませんか?

そんなとき、原因はApacheのデフォルトエンコーディング設定だったりします。 


この設定が有効だと、大体はUTF-8だったり します。

ブラウザは当該Webサーバにアクセスした際、まずApacheが送信してくる 文字コード情報で判定を行おうとします。

ですので、いくらcharsetで文字コードをshift-jisと定義しても UTF-8で表示しようとして、文字化けしてしまうわけです。


こんなときは、apacheがデフォルトエンコーディング情報を送信しないように 設定してあげましょう。 


Debianだとこの設定は、

 

/etc/apache2/conf.d/charset


に記述してあります。 なので、ここを「#」でコメントアウトして、 

apacheを再起動「/etc/init.d/apache2 restart」するだけでOKです。