6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CSVファイルをExcelで開くときの文字化け対策「BOM」って?

Last updated at Posted at 2021-07-07

概要

業務でCSVファイル出力を試していて、「Excelで開くときの文字化け対策」とだけ説明が記載された不思議な変数がありました。

const bom = new Uint8Array([0xEf, 0xBB, 0xBF]);

ん?

BOMとは

私の脳みそが一瞬爆発した音ではありません。

BOMとは「byte order mark(バイト順マーク)」の略称でUnicodeの符号化形式で符号化したテキストの先頭につける数バイトのデータのことです。

その数バイトのデータというのが先ほどのコードに記載されていた変数bomの正体です。
要するに、bomが付加されたファイルはUnicodeであることとUnicodeの符号化の種類(UTF-8とかUTF-16とか)を判別することができます。

ちなみにBOMが付加されていないファイルはUTF-8Nという名称で区別されることがあります。

なぜ文字化けするのか

Excelの標準文字コードはShift-JISですが、入力ファイルをUTF-8として解釈することもできます。
ただし、ブラウザからダウンロードされたCSVファイルは「UTF-8N」であることが多く、Excelが認識している文字コードの違いにより文字化けの原因になるようです。

ちなみにBOMを付加しても、Excel上では文字として表示されません。

最後に

なんだこれをそのままにしない精神だけは大切にしよう。

参考サイト

バイト順マーク - Wikipedia
BOMの地雷を踏み抜かない正しい文字コードとの接し方
javascript で作成したCSVファイルをエクセルで表示可能にする - Qiita

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?