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を追加・削除する手順
- 元ファイルを保管し、出力元の文字コードと接続先のBOM指定を確認する。
- UTF-8 BOMツールへファイルを読み込み、追加または削除を選ぶ。
- 処理後のファイルを別名で保存し、小さなデータで取込を試す。
- 日本語・列名・先頭ゼロ・レコード数が元と一致するか確認する。
PitaToolはUTF-8として読めるバイト列かを検査し、先頭のBOMだけを操作します。本文と改行のバイトは保持します。本文途中のU+FEFFや重複したBOMをまとめて除去する機能ではありません。
UTF-8として読み込めない場合は、BOMを付けずに元の文字コードを調べてください。CP932からUTF-8への変換は文字コード変換で行います。すでに「?」などへ置換された文字は、BOMを追加しても元には戻りません。
ツールで確認する
UTF-8 BOM付与・削除を使う →関連する解決ガイド
参考資料・検証の前提
具体例は各項目に示す条件に基づきます。ソフトの版や受け渡し先の仕様も確認してください。