WEBページの文字化けはApacheの設定だけではなかった

* 本ページはプロモーションが含まれています

CentOS7にて、yumでインストールしたApacheで、以前の設定のまま稼働状態になっていたにも関わらず、なぜかUTF-8以外のページが文字化けしていた。

UTF-8以外のページは、charsetの文字コードも記述しているにも関わらず、ブラウザー(Safari,Firefox,Google Chrome)で自動認識されない症状。

Apacheの設定では、このような文字化けに関する設定は、/etc/httpsd/httpsd.conf内のAddDefaultCharが関係しているので、

#AddDefaultCharset UTF-8
AddDefaultCharset Off

このどちらかを記述していれば問題ないはず。

さらには、conf.d内のバーチャルホスト等の設定も、これらの記述は書かれていないことを確認。
設定を変更したならば、Apacheを再起動することで有効になるが、これでも文字化けは解決せず。

かなり、時間を費やして、ページや設定を弄りましたが、どうやら、この問題はApacheだけではなかったようです。

それは、PHPの設定

PHPの設定でも、以前から全く変更はしていませんでしたが、/etc/php.ini内のdefault_charsetを空白にする必要があるようです。

;default_charset = "UTF-8"
default_charset = ""

これで、Apacheを再起動したところ、文字化けが解消されました。

文字化けしてたページ内では、ごく普通なHTMLで、PHP構文は使ってないにも関わらず、 PHPが関係していたのです。


See also