Excelを使ってCSVファイルを保存するとき、保存形式によってファイルの先頭に余計な文字列が付くことがある。この現象について、原因と対応策を整理した。
現象:CSVファイルに謎の文字が付与される
Excelで「名前を付けて保存」を使ってCSV形式で保存したファイルを他のシステムへインポートしようとしたとき、先頭に「・ソ」という文字が表示されることがある。
(↓Accessのインポート画面)
再現手順
- Excelで「名前を付けて保存」を選ぶ。
- ファイルの種類を「CSV UTF-8(コンマ区切り)」に設定して保存。
- 作成したCSVファイルをAccessで開くと、先頭に「・ソ」が表示される。
一方で、「CSV(コンマ区切り)」を選んで保存した場合、この問題は起きなかった。
原因:BOM(Byte Order Mark)
この問題は、BOM(Byte Order Mark)というマーカーに起因する。
BOMとは
BOMとは、ファイルの文字コードを示すために、ファイルの先頭に付加されるデータのこと。UTF-8形式では、BOMが付与される場合がある。
問題になる理由
BOM付きファイルを扱うと、一部のソフトウェアではBOMが不要な文字として処理される。具体的には、Accessにインポートすると、データの先頭に余計な文字が入ってしまう。逆に、BOM付きでないとエラーになるシステムも存在するとのこと。
対応策
BOMが原因で問題が起きる場合、以下の方法で対処できる。
保存時の選択肢
-
「CSV(コンマ区切り)」を選ぶ
- この形式ではBOMが付かない。
-
「CSV UTF-8(コンマ区切り)」を避ける
- この形式だとBOMが付く。
ファイル確認方法
保存したCSVファイルをメモ帳やテキストエディタで開き、「BOM付き」と表示されるかどうかで確認できる。
結論
ExcelでCSVを保存するときは、保存形式を意識して選ぶ必要がある。BOMが原因で問題が出るなら、「CSV(コンマ区切り)」を使えば回避できる。