UTF-8エンコードのファイルをphpでincludeしたら、ファイル始端にクエスチョンマークがついてきた。出力する際は読み込まれないのだが、ソースでは?と表示されている。ソースの文字コードを変えて表示すると文字化けするのでクエスチョンマークではない。
こんな事例。さて、UTF-8ファイルには二つ表記法がある。いわゆる、UTF-8Nというやつ。
http://ja.wikipedia.org/wiki/UTF-8
↑こちらを見れば解決するのだが、BOMありの方をUTF-8、なしの方をUTF-8Nと呼ぶ。
この、BOM(バイトオーダーマーク)をファイル途中でインクルードし、考慮せずに文字列処理などをすると不具合が起こるわけです。
ただ、HTMLファイル等でBOMを付加せずにいた場合、ブラウザ側でUTF-8と認識してくれない場合があるので、htmlファイルなど、初めに読み込むファイルではBOMをつけるのがベターな方法と言えよう。これはphpファイルにも該当するので、ともかくインクルード前の大元のファイルにはBOMを付けることを意識すると良いだろう。
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/55556440
この記事へのトラックバック
http://blog.seesaa.jp/tb/55556440
この記事へのトラックバック