保存形式、宣言文字コードShift_JISのファイルが文字化けする

今回この課題にかなりの時間を費やしてしまいましたのでメモです。。

保存形式、宣言文字コードShift_JISのファイルが文字化けする

あるサイトを作っておりまして、基本はUTF-8での作成なのですが、ある一部分だけShift_JISで作成していました。 ファイル(.html)の形式も宣言文字コードもShift_JISで作成されているにも関わらず、文字化けが発生しました。 そこで、そのページにアクセスした際にヘッダーでcharsetが何をはかれているのかツール(Live HTTP Headers :: Add-ons for Firefox)を使って確認しました。


すると、サーバではUTF-8を返していることがわかりました。 ここの設定もShift_JISにしたらきっと文字化けしなくなるはず。。
.htaccessに設定したりする方法もあるようですが、 今回は色々考慮し、一度phpで.htmlファイルをfile_get_contentsし、その際にheaderでShift_JISを吐き、出力するという方法をとりました。

Shift_JISになっていることが確認でき、文字化けも解消されました。

今回は.htmlファイルでの文字化けにはまったのですが、.phpファイルの場合も 「PHP5.6以上の場合、PHPが絡んでいようがいまいが、Shift_JISまたはEUC-JPの場合文字化けする」という問題があるそうです。
参考サイト:https://www.php-factory.net/cms/detail.php?id=26

今回の方法はこちらの場合の対応策にもなりそうです。 しかし、基本はUTF-8で統一して作成するのが一番の対応策と言えそうです。

・・日々問題にぶち当たりますが、ひとつづつクリアしていきたいと思います。。!