テキストエディタ UTF-8のBOM無しとBOM付きについて雑談程度に触れていきます。UTF-8というのは文字コードの一種で、Web制作業務ではページ作成の際によく使用されます。そして、テキストエディタにおいて文字コードUTF-8でファイルを作成した場合、保存時にBOM無しとBOM付きを選ぶような場面があります。このBOMとは一体何なのか、そして、UTF-8のBOM無しとBOM付きとは何なのかについて触れていきます。
BOM(byte order mark)とは
まず、定義としてBOM(byte order mark、バイトオーダーマーク)とは、Unicodeで符号化したテキストの先頭に付与される数バイトのデータで行われるマークであり、このマークにより「Unicodeのデータであること」と「符号化形式の種類」を示すことができます。
UTF-8
Unicode8ビット符号単位の文字符号化形式(文字コード、文字エンコーディングスキーム)であるUTF-8がよく使用されます。8bit単位の情報を組み合わせて文字を表記するのがUTF-8です。
符号化方式としてUTFには、UTF-8の他にUTF-16、UTF-32という方式があります。それぞれUnicodeを符号化して文字コード(符号化方式)が設定された状態を示します。
UTF-8のBOM付き・BOM無しの違い
UTF-8のBOM付き・BOM無しの違いは、ファイル先頭に「UTF-8ですよ」というマークが付くか否かという点です。
このBOMがあるかないかという点は、場面によって吉と出ることもあれば凶と出ることもあります。
BOM付きが必ず良いのであればテキストエディタ等で選択を求める必要も生じません。
BOM付きであるからこそ、プログラムが正常に動作しないということもあれば、BOMが無いからこそ文字化けが起こるということもあります。一般的には、BOM無しであるからこそCSVファイルをExcelで開くと文字化けするというようなことも起こります。
テキストエディタによるHTMLファイル作成における保存時
テキストエディタにて文字コードUTF-8でHTMLファイルを作成にする時の保存時にBOM付き・BOM無しどちらが良いかという点についてですが、一般的にはBOM無しの方が無難です。動的プログラムであるphpを動かす時に不具合が出るケースがあります。
サクラエディタ
テキストエディタであるサクラエディタであれば、文字コードセット「UTF-8」の横にBOMのチェックがあります。
TeraPad
テキストエディタであるTeraPadの場合は、「文字/改行コード指定保存」において「UTF-8」が「BOM付き」、「UTF-8N」が「BOM無し」です。
メモ帳
Windowsの標準機能である「メモ帳」を使用した場合、文字コードをUTF-8にして保存するとBOM付きになります。BOM無しのファイルをメモ帳で編集して保存するとBOM付きに変更されるため注意が必要です。
ホームページ制作や修正で不具合が出る場合はBOM付き・BOM無しを再確認
ホームページ制作や修正で、それほど何も変えていないのに不具合が出たという場合、UTF-8のBOM付き・BOM無しが問題になっている場合があります。
特に、「簡単な確認と調整をしておこう」と、ちょっとした修正を意図して、該当ファイルを「メモ帳」で編集した場合、意図せずBOM無しがBOM付きに変更されていて不具合が出たという場合があります。
そのような時は、UTF-8のBOM付き・BOM無しを再確認する必要があります。
(初回投稿日 2023年7月26日)