BOMってなに?
先日、業務でhtmlファイルを編集する際「BOMつけないようにお願いします」と言われ「BOMってなに?」ってなったので調べてみました。
BOMとは、、
バイト順マーク (バイトじゅんマーク、英: byte order mark) あるいはバイトオーダーマークとは、通称BOM(ボム)といわれるUnicodeの符号化形式で符号化したテキストの先頭につける数バイトのデータのことである。このデータを元にUnicodeで符号化されていることおよび符号化の種類の判別に使用する。
-wikipediaより引用
との事。えーっと、、、結局なに?
どのように利用されるのかを調べてみると、
Excelなどでファイルを開く際に
BOM付きでなければ符号化方式がUTF-8なのかUTF-16なのか、またはUTF-32なのか、あるいはまったく別の文字コードなのか判断できないことがあります。
とあり、更に
一方、Webページとして使用されるHTMLファイルの場合はBOM無しで保存・上書きする方が良いとされています。これはWebページを動的に処理するPHPなどのプログラムがBOM付きのテキストファイルを正常に処理することができないことがあるからです。
との事。
まとめると
BOMとは、「そのデータの符号化方式の種類が何なのか(UTF-8、UTF-16など)を明示的に示すサインのようなもの」というところでしょうか。
そんでもって、BOM有り・無しの使い分けとしては
BOMつける場合
→Excelなどで開くことを想定しているファイルなど
BOMつけない場合
→htmlファイルなど
という事になりそうです。
また、既存ファイルがBOMの付きなのかBOM無しなのかを調べるのは下記サイトで図入りで説明されてますので、参照ください。
https://aprico-media.com/posts/5636