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つだけだったので手動で削除しました。
複数ある場合は参考サイトに一括削除の方法が載っています。