UTF-8のBOMの確認、追加、削除

SQLiteからエクスポートしたUTF-8のCSVファイルをExcelで読み込むと文字化けするのでこれまではShift-JISに変換していたがもしかしたら何らかの方法で読み込めるのではないかと思い、検索するとBOMを付加すればよいことが分かった。なお、確認した環境はmacOS 10.15.3 Catalinaです。

確認方法

fileコマンドを使う。対象ファイルを行こうhogehoge.csvとします。

file hogehoge.csv
hogehoge.csv: UTF-8 Unicode text <-- BOMなし
hogehoge.csv: UTF-8 Unicode (with BOM) text <-- BOMあり

BOMの追加

nkfコマンド

nkfコマンドを利用する。nkfコマンドはmacOS標準のコマンドではないので何らかの方法でインストールする。私はbrewでインストールしてある。

追加のオプションは–oc=UTF-8-BOM、対象ファイルを上書きするにはオプション–overwriteを追加する。

ocオプションは出力のエンコードの指定

nkf --overwrite --oc=UTF-8-BOM hogehoge.csv

emacsを利用する場合

普段Emacsを使っているのでこちらも調べた。出力ファイルのエンコードを指定すればよい。

  1. 該当ファイルを開く
  2. Ctrl+X,Return,F
  3. 次のいずれかのエンコードを指定する
    1. utf-8-with-signature
    2. utf-8-with-signature-dos
    3. utf-8-with-signature-mac
    4. utf-8-with-signature-unix
  4. ファイルを保存する

BOMの削除

nkfコマンド

nkfコマンドの–oc=UTF-8を使う。

nkf --overwite --oc=UTF-8 hogehoge.csv

emacsを理由する場合

普段Emacsを使っているのでこちらも調べた。出力ファイルのエンコードを指定すればよい。

  1. 該当ファイルを開く
  2. Ctrl+X,Return,F
  3. 次のいずれかのエンコードを指定する
    1. utf-8
    2. utf-8-dos
    3. utf-8-mac
    4. utf-8-unix
  4. ファイルを保存する

参考にしたページ

下記のページを参考にしました。ありがとうございます。

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。