このブログのはてなブックマーク数 このエントリーをはてなブックマークに追加

知らなきゃ絶対損するPCマル秘ワザ

知らなくて損したPC情報とかを分かりやすくメモする個人ブログ。
『月,水,金』の週3回更新!(予定)

ウェブ制作:「UTF-8」の「BOM」って何?付けた方がいいの?

このエントリーをはてなブックマークに追加
イメージ


こんにちは、さち です。

ウェブサイトの制作では
文字化け防止のため文字コードを「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」無しだと、一部のブラウザやソフトでソースを見るときに
誤った文字コードで表示されることがありますが
通常のウェブページ閲覧には何も問題ありません。
もちろん、HTMLCSS は文字コードを明記しましょう。




余談

Unicode, UTF-8, BOM などの少し踏み込んだ内容なので
興味がない人は読み飛ばして下さい。

Unicode は「文字セット(符号化文字集合)」と呼ばれるもので
使用する文字の定義です。

そして、この Unicode の各文字に番号を割り当てるのが
UTF-8 をはじめとする「文字コード(符号化方式)」です。
UTF-8 以外にも UTF-16, UTF-32 が存在します。

UTF-16, UTF-32 は、コンピュータの構造により
エンディアンの方式が2種類(ビッグ/リトル)あるため
この判別に BOM を使用しています。

一方、UTF-8 はエンディアンの違いは存在しません。
つまり、UTF-8 にとって BOM は必要ないものです。
(BOM を付けることも「許容」しているだけ)

そのため、UTF-8 に BOM が付くことを想定しないものでは
BOM が不具合の原因になる場合があります。

ただし、「Excel」「メモ帳」などは
逆に、「BOM」を付けておかないと不具合が出ることがあります。
「メモ帳」が強制的に「BOM」を付ける理由はこれなのでしょう。

BOM の有無についてどちらかに統一して欲しいですね。



このエントリーをはてなブックマークに追加




管理人だけが読めるコメントにする(返信はしません)
【お知らせ】
  • コメントは承認制です。反映に時間がかかります。
  • スパムコメント防止のため一部ホストを規制中です。
  • URLを含む投稿はできません。必要な場合は最初のhを削って下さい。
  • 記事に直接関係ない個人のトラブルにはお答えできません。
  • Android は使用経験がないので質問を頂いても答えられません。
  • その他詳細はこちら





記事別の週間アクセス数ランキングです。こちらの記事もぜひ読んでみて下さい。

2008-2019 知らなきゃ絶対損するPCマル秘ワザ  無断転載禁止

ブログパーツ