web関連

古いサイトを新しいサーバーにあげたら文字化けした件

古いサイトを新しいサーバーにあげたら文字化けした件

10年くらい前の静的なhtmlでPHPを使ってるサイトを、古いサーバーから新しいサーバーにお引越ししたらめちゃくちゃ文字化けしたので備忘録
ちなみにさくらサーバー

PHP5.5以下を使う必要性がある

PHP5.6以上を使うと文字コードが「Shift_JIS」、または「EUC-JP」の時文字化けするみたい。

数百ページあったので古いサイトの入ってるディレクトリだけPHP5.4を使ったら解決した
さくらインターネットだったので↓使った

▼参考
https://www.php-factory.net/blog/?id=10746568e0ffbb13b0

文字コードって「head」タグ内の宣言とファイルの文字コードって別ものなんすね
普段文字コード意識しないから「head」内の文字コード変更すればファイルの文字コードも変わると思ってた

その他調べたメモ

PHPの方で強制的に「utf-8」に変換されるって記事見たから
PHPの文字コードを「Shift_JIS」に変えようとしたら上手くいかなかった

php_value default_charset "SHIFT_JIS"
php_value mbstring.internal_encoding "SHIFT_JIS"
php_value mbstring.http_output "SHIFT_JIS"

書き方も悪いんだと思うけどそもそも「Shift_JIS」とPHPの相性悪いみたいっすね
CGI使ってるかモジュール使ってるかでやり方変わってくるらしい

▼参考
https://goo.gl/fRAi4t

文字コードって「head」タグ内の宣言とファイルの文字コードって別ものなんすね 普段文字コード意識しないから「head」内の文字コード変更すればファイルの文字コードも変わると思ってた