概要
PHP 5.5 以下から、PHP 5.6 以上に PHP をアップグレードした際、HTTP ヘッダーに Content-Type: "text/html; charset=UTF-8" が追加され、文字コードが Shift_JIS などのサイトは文字化けしてしまう場合があります。
これは、php.ini に default_charset の指定がないことが原因です。default_charset = "Shift_JIS" などを追加することで、ヘッダーの Content-Type で指定される文字コードを変更できます。
詳細
Shift_JIS の Web サイトをホスティングしている、レンタルサーヴァーの PHP ヴァージョンを 5.5 から 5.6 に上げたところ、Web サイトに文字化けが発生してしまいました。
<head> の中には <meta charset="Shift_JIS"> が入っているので、HTML 側の文字コード指定は問題ないようです。
一方、HTTP ヘッダーの方を確認してみると、Content-Type に text/html; charset=UTF-8 が指定されていました。
調べてみたところ、Content-Type で指定される文字コードは、php.ini の default_charset というパラメーターで指定することになっているようです。PHP 5.6 からデフォルト値が空から "UTF-8" に変更されています。
今までは空だったため、特に Content-Type で charset が指定されることもなく、このような問題が発生しなかったのだと思います。
