Ruby导出xls和csv的utf-8问题的解决

数据库数据为utf-8格式,包括中文和拉丁文等等
导出文件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)

你可能感兴趣的:(Excel,Ruby)