CSV文字化けした時はBOMも確認する

複数の環境に設置してるシステムで、ある環境だけCSVダウンロードが文字化けしてしまう現象がおきました。

コードを調べたところ特におかしなところが見当たらず、調査を進めていくとファイルにBOMが付与されていると文字化けになると言う情報を発見。

php csv ソ」で検索して1番目に以下の情報を発見。 ダウンロードしたCSVファイルが文字化けする問題 – 大阪のシステム開発・WEBシステム開発会社技術担当スタッフの覚書き、子だぬきの技術習得ノート

最初は関連するファイルを一つずつ調べていたのですが、数ファイルみたところで、一括で調べられないかを調査してみることに。

php bom 一括 確認」で検索したところ何種類かあったのですが、bash で検索できる方法が簡単でした。

このコマンドで特定のファイルだけ抽出してくれます。

find . -name '*.php' | xargs grep -l ^$'\xef\xbb\xbf'

参考にしたのはこちら Mac(bash)でBOM付きファイルを抽出しBOMを削除するコマンド | KEYPOINT – キー・ポイント株式会社 開発日誌

今回はBOMがついているファイルが1つだけだったので手動で削除しました。

複数ある場合は参考サイトに一括削除の方法が載っています。