UTF-8 BOMあり・なしの違い
UTF-8のBOMは、ファイル先頭に置かれる3バイトEF BB BFです。Unicode上ではU+FEFFに対応し、読み込み側がUTF-8だと判断する手掛かりになります。UTF-8自体の文字表現にBOMが必須というわけではありません。
| 形式 | ファイル先頭 | 主な特徴 |
|---|---|---|
| UTF-8 BOMなし | 本文の先頭バイトから開始 | Web、プログラム、Unix系で一般的 |
| UTF-8 BOMあり | EF BB BF | 一部のWindowsアプリで文字コード判定の助けになる |
BOM付きが役立つ場合
文字コードを指定する仕組みがなく、受け取り側がファイル内容から推定する場合、BOMがUTF-8の目印になります。特に古いWindowsアプリケーションや、CSVを扱う一部の環境では、BOM付きUTF-8の方が日本語を正しく認識しやすい場合があります。
BOMが問題になる場合
プログラムやデータ形式の実装がBOMを考慮していないと、先頭に見えない文字があるように扱われます。シェルスクリプトの先頭、HTTP応答、JSONキー、CSVの最初の列名などで、想定外の文字として残ることがあります。現在の主要な実装はBOMを処理するものが多いものの、利用先の仕様が優先です。
文字列途中のU+FEFF
ファイル先頭のBOMと、文章の途中に現れるU+FEFFは区別して考えます。コピーや連結によりBOMが途中へ入ると、検索やキー比較が一致しない原因になります。本ツールでは、先頭のBOMはファイル情報として表示し、文字列途中のU+FEFFは不可視文字として検出します。
どちらを選ぶか
- Web、ソースコード、JSON:通常はBOMなしUTF-8
- ExcelなどWindowsアプリ向けCSV:受け取り側に応じてBOM付きUTF-8
- 仕様書で指定されている場合:指定を優先
- 不明な場合:実際の読み込み環境でテスト
文字コードとBOMを別々に記録する
「UTF-8」だけでなく「UTF-8 BOMなし」「UTF-8 BOM付き」と明記すると、受け渡し時の認識違いを減らせます。
参考資料
最終確認日:2026年7月23日