Ruby导出xls和csv的utf-8问题的解决 博客分类: Ruby RubyExcel
程序员文章站
2024-02-22 16:45:34
...
数据库数据为utf-8格式,包括中文和拉丁文等等
导出文件xls格式和csv格式时会出现乱码情况
0,前提
在database.yml里使用utf8编码连接数据库:
1,xls
使用spreadsheet 0.6.3版本
以前低版本(<=0.3.5.1)的spreadsheet导出xls还是有utf-8编码出现乱码情况,升级到最新的0.6.3时自带一个向下兼容的excel.rb文件可以很好的解决问题,只有add_worksheet这个方法接口要注意一下,必须带参数name
2,csv
需要给csv文件头写入utf-8 BOM:
导出文件xls格式和csv格式时会出现乱码情况
0,前提
在database.yml里使用utf8编码连接数据库:
encoding: utf8
1,xls
使用spreadsheet 0.6.3版本
以前低版本(<=0.3.5.1)的spreadsheet导出xls还是有utf-8编码出现乱码情况,升级到最新的0.6.3时自带一个向下兼容的excel.rb文件可以很好的解决问题,只有add_worksheet这个方法接口要注意一下,必须带参数name
2,csv
需要给csv文件头写入utf-8 BOM:
output = StringIO.new("", "w") # make excel using utf8 to open csv file head = 'EF BB BF'.split(' ').map{|a|a.hex.chr}.join() output.write(head)