17
16

More than 5 years have passed since last update.

BOM付きUTF-8のCSVを作成する(Excel文字化け対策)

Posted at

Excel 用の CSV を Rails で吐く必要があったのですが、BOM 無し UTF-8 だと文字化けしてしまうため、BOM を付けてやる必要がありました。

CSV 作成に使用したメソッド

CSV を作る方法は色々あると思いますが、今回はCSV.generateを利用して CSV ファイルを作成しています。

Rails で CSV を出力する方法について調べたら、見覚えのあるピンクアイコンの記事が出てきたので、その方法をそのまま採用しました。

実装

CSV.generateは文字列をラップして CSV のオブジェクトとしてブロックに渡すメソッドらしいので、BOM を引数に渡せば BOM 付きになります。

foo.csv.ruby
require "csv"

bom = %w(EF BB BF).map { |e| e.hex.chr }.join
CSV.generate(bom) do |csv|
  :
end

以上!

参考

17
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
16