Comment今さら何でPHP5.6なのかと悲しくなりますが、サーバー変更するときにPEARを使っていたりmysql_connect等のPHP7で廃止された関数を大量に使用しているサイトだったので、修正予算が無い関係でどうしてもPHP5系を選ばないといけませんでした。MySQLデータもPHPソースもHTMLも、全てEUC-JPで書かれているというサイトです。あがきで最新である5.6を選択するわけですが、PHP5.6はデフォルトの言語がUTF-8になっているため、UTF-8で構築する分には何も考えなくて良いのですが、EUC-JPやShift_JISで書かれたサイトを設置すると文字化けにハマります。今回、試行錯誤で時間が掛かったので、その解決策をメモしておきます。通常はPHPソースもHTMLもUTF-8で掛かれている前提でphp.iniは、こう設定されていると思います。UTF-8今回、他のバーチャルドメインも乗せているレンタルサーバーでphp.iniは変更できない状況だったので、php.iniはUTF-8の設定のままでプログラム側で対処します。共通設定処理など、サイト全体の最初に処理されるPHPソースに以下の文を書き足します。charset=EUC-JP');mb_~関数では無いのが重要。文字コードを誤認したりしました。一緒に設定した方が良さそう。いうヘッダーが吐かれてしまうので、header関数でEUC-JPに上書きします。上書き設定してしまいます。MySQLデータベースは5系以降は内部コードがUTF-8で処理されますので、EUC-JPでdumpしてきたデータはエディタ等でUTF-8にコード変換して、UTF-8でデータベースに流し込み通信段階でクライアント側の文字コードに変換させるのが吉。流し込めばUTF-8で格納されるので、あとは通信段階でクライアント側の文字コードに変換させるのが吉。書いちゃうのが楽もう試行錯誤しないで済みますように。