activeadminでSJISでcsvダウンロードしたかったので、optionを渡しました。
# config/initializers/active_admin.rb config.csv_options = { encoding: 'CP932' }
しかし、これだとエンコードエラー。
モンキーパッチを当ててみました。
encodeメソッドを繰り返して、SJISエラー回避してます。
あまりきれいじゃないけど、これでいけました。
# config/initializers/monkey_patches/active_admin.rb: module ActiveAdmin class CSVBuilder def encode(content, options) if options[:encoding] content.to_s.encode("Windows-31J","UTF-8",invalid: :replace, undef: :replace).encode("UTF-8", "Windows-31J").encode("Windows-31J","UTF-8") else content end end end end
コメントを残す