知らなきゃ絶対損するPCマル秘ワザ
『月,水,金』の週3回更新!(予定)
こんにちは、さち です。
ウェブサイトの制作では
文字化け防止のため文字コードを「UTF-8」にするのが一般的。
よーし、「UTF-8」でサイト作っちゃうぞー!
ファイルを「UTF-8」で保存すればいいだけでしょ。
えっ、「BOM」?何それ意味分かんないんだけど…。
「BOM」ってなに?
テキストファイルによく使われる文字コード「UTF-8」には「BOM」という仕組みがあります。
「BOM」は、「バイトオーダーマーク(Byte Order Mark)」の略で
ファイルの文字コードが「UTF-8」であることを示します。
(バイナリの先頭に付いてる「EF BB BF」が BOM)
簡単に言うと、「UTF-8 で文字を書いたよ」と PC に知らせるものです。
「BOM」を付ける/付けないは任意なので
テキストエディタ によっては保存時にその選択ができます。
(画像は「Mery」の保存画面)
ちなみに、「メモ帳」は「BOM」の有無を選択できません。
自動で「BOM」が付加されてしまいます。
ちなみに、BOM無しのUTF-8を「UTF-8N」と呼ぶこともあります。
ぜひ覚えておきましょう。
(ただし、日本でしか使われていない表現のようです)
「テキスト」で真っ先に思い浮かぶのは
「メモ帳」で書くような一般的なテキストファイル(拡張子:txt)ですが
中身がテキストで構成されているファイルはウェブにもあります。
例えば、「HTML」「CSS」「JavaScript」「PHP」等です。
これらのファイルも文字コードを「UTF-8」にすれば
当然「BOM」が関わってきます。
ウェブ制作では「BOM」を付けた方がいいの?
結論から言うと、「BOM」は付けない方がよいです。付けると動作や表示に不具合が出る可能性があるからです。
(PHP で謎の空白ができてしまう など)
「BOM」無しだと、一部のブラウザやソフトでソースを見るときに
誤った文字コードで表示されることがありますが
通常のウェブページ閲覧には何も問題ありません。
もちろん、HTML や CSS は文字コードを明記しましょう。
余談
Unicode, UTF-8, BOM などの少し踏み込んだ内容なので興味がない人は読み飛ばして下さい。
Unicode は、「符号化文字集合」と呼ばれる使用文字の定義です。
その Unicode の各文字に番号を割り当てるのが
UTF-8 をはじめとする「符号化形式」です。
UTF-8 以外にも UTF-16, UTF-32 が存在します。
UTF-16, UTF-32 は
仕様上エンディアンの違いにより複数の種類が存在するため
その判別に BOM を使用しています。
一方、UTF-8 は仕様上エンディアンの違いは存在しません。
つまり、UTF-8 にとって BOM は無くてもよいものです。
(BOM を付けることも「許容」しているだけ)
そのため、UTF-8 に BOM が付くことを想定しないものでは
BOM が不具合の原因になる場合があります。
ただし、「Excel」「メモ帳」などは
逆に、「BOM」を付けておかないと不具合が出ることがあります。
「メモ帳」が強制的に「BOM」を付ける理由はこれなんでしょう。
BOM の有無についてどちらかに統一して欲しいですね。
| ホーム |
記事別の週間アクセス数ランキングです。こちらの記事もぜひ読んでみて下さい。