PHP5.6以上でShift_JISのPHPファイルが文字化けするときの解決方法

PHP5.6以上の場合、拡張子が.phpの場合で、文字コードがShift_JIS、PHPが絡んでいようがいまいが文字化けしてしまうようです。(要するにそのファイルにHTMLだけが記述されていたとしても)

つまりmetaタグのContent-Typeで「charset=shift_jis」などを指定していたとしても文字化けしてしまいます。

おそらくデフォルトcharsetがUTF-8に変わったせいだろうと思われます。

解決法としては、単純にheader関数で明示的に文字コードを指定すれば解決できました。

以下1行をソース上の一番上の行(DOCタイプ宣言の更に上)に記述すればOK。
※EUC-JPの場合は適宜変更して下さい。

<?php header("Content-Type: text/html;charset=Shift_JIS");?>

 

参考サイト:

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

category cloud