macOSでCSVにBOMを付与する

2025年1月7日

macOSでCSVにBOMを付与するためのスクリプトを作成しました。Finder上でファイルを右クリックし、クイックアクションから実行できます。
gist:07ea73871a6e70e26667232882047416

SlackではCSVを共有すると、BOMが削除されてしまう場合があります。それにより、Excelで開くと文字化けしてしまいます。
Slack に 1MB 以下の BOM 付き CSV をアップロードすると BOM が消える #Slack - Qiita

どうやら、Slackでのスニペット表示の対象となる小さなサイズのファイルの場合にのみ起きる現象のようです。しかし、私がSlack上で受け渡しするのはもっぱら小さなサイズのファイルなので遭遇頻度は高く感じます。

送り手がZIP化してから添付するなどといったワークアラウンドもありますが、いささか面倒ですしそもそも送り手がこの仕様を知っていなければなりません。

開いたファイルが文字化けしておりBOMが消えていることに気付いた際には都度、コードエディタで開きエンコードを変え保存し直していました。しかしそれも億劫です。冒頭のスクリプトは、macOSに標準で付属しているワークフロー構築ソフトウェアAutomatorにて保存, 設定することで右クリックメニューから使用できます。

macOSのAutomatorしかりiOSのショートカットしかり、Apple製品はワークフロー構築環境が充実していますよね。使用するユーザーがそこまで多いとは思えないからこそ、Apple社がどういった思想でここへ投資を続けてきているのか興味が湧きます。

なお、このスクリプトを使用せずともNumbersでファイルを開けば文字化けせずに扱うことができます。またExcelにおいても、ファイルを直接開くのでなくデータの取得を行う形で開くことで、UTF-8を指定し開くことが可能です。
Excel で CSV UTF-8 ファイルを正しく開く - Microsoft サポート