欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ruby导出xls和csv的utf-8问题的解决 博客分类: Ruby RubyExcel 

程序员文章站 2024-02-22 16:45:34
...
数据库数据为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)
相关标签: Ruby Excel