文字コードのBOMとは(Excelでの使用例)

「UTF-8」や「UTF-16」等の一部の文字コードには、「BOM」と呼ばれるフラグのようなものを付ける場合があります。
BOMはファイルの先頭につけられるバイナリのデータであり、UTF-8の場合は16進数で「EF BB BF」、UTF-16の場合は16進数で「FE FF」となります。
(詳しくは、英語版のWikipediaに記載があります

BOMは、そのファイルが何の文字コードを使用しているか判定するために用いられるものです。
BOMは現在は使用されることが少なく、使用すると逆にトラブルの元になることもあります。
しかし、現在でもBOMを使用するソフトウェアは存在し、その代表例はExcelです。

Excelでは標準の文字コードがSJISですが、BOM付きのファイルを読み込んだ場合はBOMが示す文字コードが使用されます。

以下では、読み込みと書き込みの例を示します。

【読み込み】

以下はBOM無しのUTF-8のCSVファイルです。

バイナリエディタでファイルを開くと以下の通りです。
ファイルの先頭に「EF BB BF」がありません。

これをExcelで開くと、SJISと判定され、文字化けします。

今度は、同じデータで、BOMを付与したCSVファイルを用意します。
バイナリエディタでファイルを開くと以下の通りです。
ファイルの先頭に「EF BB BF」があります。これがBOMです。

これをExcelで開くとUTF-8と判定され、文字化けしません。

【書き込み】

Excelで開いたCSVファイルを、「Unicodeテキスト(*.txt)」形式で保存します。
すると、BOM付きのUTF-16形式でデータが保存されます。

これをExcelで開くと、UTF-16形式のBOMである「FE FF」が確認できます。


最後の投稿から日が開いてしまいましたが、ゴールデンウィークということで、久々の投稿です!

実務の中でBOMの扱いに苦労している場面を見かけたので、この記事を執筆してみました。
実例を挙げてわかりやすくするために、Excelでの利用例も書きました。

この記事が何かの役に立てば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA