数据库数据为utf-8格式,包括中文和拉丁文等等
导出文件xls格式和csv格式时会出现乱码情况
0,前提
在database.yml里使用utf8编码连接数据库:
[code]
encoding: utf8
[/code]
1,xls
使用[url=http://spreadsheet.rubyforge.org/]spreadsheet[/url] 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:
[code]
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)
[/code]
导出文件xls格式和csv格式时会出现乱码情况
0,前提
在database.yml里使用utf8编码连接数据库:
[code]
encoding: utf8
[/code]
1,xls
使用[url=http://spreadsheet.rubyforge.org/]spreadsheet[/url] 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:
[code]
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)
[/code]