php」タグアーカイブ

UTF-8の落とし穴

かつて公開していたウェブページでは、より利用しやすい環境を構築するための準備作業として、使用している文字コードをShift JISからUTF-8に変更し、コードが書かれたファイルもANSIからUTF-8エンコードで保存したものに変更中でしすが、デバッグのためにウェブページを表示させると、一部の文字が”?”マークで表示されてしまうことが判明しました。しかも、毎回ではなく時々……。
error
これは、内部でphpを用いて生成したhtmlファイルの例ですが、phpで出力文字列をコーディングしている部分が”?”になってしまい、データ一覧CSV(CSVファイルもUTF-8で保存)から読み込んだ文字列を表示させる部分だけが正しく表示されています。

いろいろとphpのコードを触っても改善しなかったこの現象。調べていくうちに、意外な落とし穴があることがわかりました。
続きを読む