UTF-8 BOMとは?Excel用CSVで付けるか判断する

UTF-8 BOMの3バイトと、Excel向けに追加する場合・システム取込で削除する場合を解説。同じ本文のBOMあり・なしCSVをダウンロードして確認できます。

更新: · PitaTool

BOMは取込先に合わせて選ぶ

UTF-8 BOMは、ファイル先頭に付くEF BB BFという3バイトです。UTF-8であることを認識する手掛かりになります。ExcelでCSVを直接開く用途ではBOM付きが役立ちますが、システム連携では受け渡し先の指定を優先します。

追加・削除を選ぶ目安
用途・状態選ぶ方法確認点
UTF-8 CSVをExcelで直接開くBOM付きUTF-8を試す日本語と先頭ゼロを確認
Excelのテキスト/CSVから読み込む文字コードを指定して取り込む対象列のデータ型も指定
サービスがUTF-8 BOMなしを指定先頭BOMを削除列名が一致するか確認
サービスがUTF-8 BOM付きを指定UTF-8本文にBOMを追加文字コードとBOMを別々に確認
元データがCP932など別の文字コード先に文字コードを変換BOMを足すだけでは変換できない

同じ本文で101 bytesと104 bytesを比較

下の検証用CSVは顧客ID・氏名・備考の3列、ヘッダーを含む3レコードです。架空の氏名、ID「001」、値の中のカンマと引用符を含みます。BOMなしは101 bytes、BOM付きは104 bytes。後者の先頭3バイトを取り除くと前者と完全に一致します。

BOMなし:E9 A1 A7 E5 AE A2 …(本文)
BOM付き:EF BB BF E9 A1 A7 E5 AE A2 …(同じ本文)

Unicodeの説明では、UTF-8にバイト順の区別はなく、BOMは署名として使われます。画面上の文字が同じでも、ファイルの先頭バイトが違う点が重要です。

Excelでは開き方と列の型も確認する

MicrosoftはBOM付きUTF-8 CSVを通常の方法で開く手順と、BOMがない場合にデータの取得/テキスト・CSVから読み込む手順を案内しています。メニュー名や利用できる機能はExcelの版・環境により異なります。

文字化けが解消しても、ID「001」が「1」に変わる問題は別です。インポート時にID列を文字列として扱い、読み込み結果の値と件数を確認してください。BOMだけで列の型や数式としての解釈を指定することはできません。

本文を変えずにBOMを追加・削除する手順

  1. 元ファイルを保管し、出力元の文字コードと接続先のBOM指定を確認する。
  2. UTF-8 BOMツールへファイルを読み込み、追加または削除を選ぶ。
  3. 処理後のファイルを別名で保存し、小さなデータで取込を試す。
  4. 日本語・列名・先頭ゼロ・レコード数が元と一致するか確認する。

PitaToolはUTF-8として読めるバイト列かを検査し、先頭のBOMだけを操作します。本文と改行のバイトは保持します。本文途中のU+FEFFや重複したBOMをまとめて除去する機能ではありません。

UTF-8として読み込めない場合は、BOMを付けずに元の文字コードを調べてください。CP932からUTF-8への変換は文字コード変換で行います。すでに「?」などへ置換された文字は、BOMを追加しても元には戻りません。

ツールで確認する

UTF-8 BOM付与・削除を使う →

関連する解決ガイド

参考資料・検証の前提

具体例は各項目に示す条件に基づきます。ソフトの版や受け渡し先の仕様も確認してください。

処理の定義・データ出典・既知の制限