导出代码如下(变量 text 是 csv 格式的字符串)
send_data text,
:type => 'text/csv; charset=utf-8; header=present',
:disposition => "attachment; filename=Members.csv"
下面的代码怎么才能调好啊。。一直乱码,都几天了还是乱,,,
text="234234,是打发士大夫"
send_data text ,
:type => 'text/csv ',
:disposition => " filename=Members.csv"
.rb 的文件全部用 utf-8,第一行增加: # encoding: utf-8
application.rb 里边增加: config.encoding = "utf-8"
然后用下面代码写入文件试试:
require 'csv'
CSV.open('test.csv', 'wb') do |csv|
csv << ['中文', '测试', '测试']
end
对了,MAC 的 Office 打开 csv,好像就是有乱码问题,可以使用 Numbers,LibreOffice,OpenOffice 试试。
require 'csv'
class Export
def self.csv
CSV.generate do |csv|
csv << ['中文', '测试']
end
end
end
def index
send_data(Export.csv, filename: 'test.csv')
end
MAC 的 Office 好像就是乱码问题,而且默认好像是分号来分割,所以我们就直接跟他们说了,只能用 Numbers,因为我们开发的是内部系统。
试试这个吧,不行的话就是你的数据有问题 def utf8_bom utf8_arr = [0xEF,0xBB,0xBF] bom = utf8_arr.pack("c3") bom end
send_data(utf8_bom << text, :type => 'text/csv', :filename => "Members.csv" )