Byte-Order Mark found in UTF-8 File
昨日立ち上げたSEO施策学習サイトを「W3C Markup Validation Service」というHTMLチェックツールで構文チェックを実施してみました。
W3Cとは、WWWで利用される技術の標準化をすすめる団体のことです。
W3CでHTML構文のチェックがPASSできれば、概ねOKってことです。
しかし、英語でわかりづらいので、「Another HTML-lint」の方が良いかもしれません。
正しいHTMLを書くことが大切なので、どちらかを使用して構文チェックをこまめにしましょう。
というこで、構文チェックを行いました。
幾つかのエラーが出たのですが、最終的に残ったのが
「Byte-Order Mark found in UTF-8 File.」という警告でした・・・・
更に下に「The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problems for some text editors and older browsers. You may want to consider avoiding its use until it is better supported. 」
と出ています。
英語なので、さっぱり意味がわかりません^^;
翻訳サイトを使ってなんとなくですが、意味がわかりました。
Unicodeには、UTF-8とUTF-16などが有ります。
更にUTF-16では、ビットの処理をビッグエンディアンとリトルエンディアンのどちらでもOKにしているため、BOMでどちらを使用しているかをチェックする必要があります。
更に、BOMをファイルの冒頭に挿入することでUTF-8かUTF-16か判別に用いているアプリケーションもあります。
私の作った文書ファイルは、UTF-8を宣言しています。
?xml version=”1.0″ encoding=”UTF-8″ ?というふうに。
しかし!ここで、HTML構文チェッカーは、「え?BOM入ってるやん?UTF-16やろ?」
更に、「困るんだよね。。。BOMは良く問題を起こすんだよ。文書ファイルを作成したアプリを使わない方がよくね?」と
今回、手軽にWindowsのメモ帳を使ったのがまずかったようですね。
とりあえず、原因は判ったのでどうにか対処します。
そうそう、私の原因の他、
?xml version=”1.0″ encoding=”UTF-8″ ?が指定されていなくて同様の警告が出た方も居るようです。
いろいろ有るんですね。。。
では、このへんで。