Help us understand the problem. What is going on with this article?

ApacheのAddDefaultCharsetを変更しても一部文字化けが解消されない

概要

CentOS5x->CentOS7xへのリプレースを実施したときのことです。
旧環境では文字化けしていなかった一部のhtmlファイルの日本語が新環境では文字化けしていることが確認されました。

調査

対象htmlファイル内ではcharsetがshift-jisに指定されていました。
一方、ApacheのAddDefaultCharset utf-8(旧環境ではOFF)でした。なるほど。
そこで、新環境でも同じくこれをOFFにしたところ、、、なんと文字化けは解消しませんでした。

解決

調査の過程でphp環境の影響が浮上しました。
php.ini内でcharsetがutf-8と指定されており、これがApache起動時の設定パラメータを上書きしていたと思われます。

php.ini
; PHP's default character set is set to UTF-8.
; http://php.net/default-charset
default_charset = ""
; If empty, default_charset is used.

上記のとおり変更を反映させた後、対象htmlファイルの文字化けがなくなったことを確認しました。
※ApacheのAddDefaultCharset はOFF

phpのデフォルト設定でUTF-8が指定されるようになっていたようです。
対象ファイルは静的htmlファイルだったのでphpの設定との関連性になかなか気づけませんでした。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした