そんなの気づかないよ。
最近一度あったのが、ワードプレスで構成したサイトをバリデーションにかけたら、「<html>タグの前によけいな記述があるからどうにかしなよ(とい うニュアンスの表示)」が出たんですが、<html>タグはコードの一行目にあるし、それより前に余計な記述などは見当たらない。
コードを何度見直してみてもわからないまま時間が過ぎていく。
ググっても日本語のページはまったくひっかからない。
こういうエラーが出た人はあまりいないらしい。
さすが残念なWEB製作者。
しょうがないから検索結果に表示された英語のページを開いて翻訳をかけてみる。
すると、完全な翻訳ではないが、BOMがうんぬんという部分があったため、それをもとにググってみると、なんでもPHPやhtmlファイルをUTF8で保存するときただのUTF8で保存してしまうと、BOMってやつがもれなくついてくるらしい。
BOMというのはどうやらUTF8であることを表示するバイト順マーク(Byte Order Mark)という3バイトのバイナリデータらしいんですが、このデータはテキストエディタで見ても出てこない(見えない)。
そのため、PHPが動的に作成した後のhtmlファイルをいくら眺めてみてもそんな記述はないため、このバリデーションサービスはおかしいとちょっぴり思い始めていました。
というか、分かるか、そんなこと。
なので、テキストエディタを使ってhtmlやPHPとして保存する場合にはUTF8Nというやつで保存するようにしましょうね。
ちなみにNはNO-BOMってことらしいです。BOM無しですね。
なお、基本的にテキストエディタはデフォルトではBOM無しになっているらしいので深く考えなくても普通は大丈夫です。
オレは普通じゃないのか。文字コードがUTF8だからUTF8で保存したオレが悪いのか。
文字コードがUTF8だったらUTF8で保存するんじゃないのか。
UTF8Nで保存するなんてだれも教えてくれなかったじゃないか。
説明する必要がないほどあたりまえのことなのか…orz