Ruby编码问题汇总
'I am 中国人'.encoding #=> #<Encoding:UTF-8>
'I am 中国人'.encode('gbk', 'utf-8') #=> "I am \x{D6D0}\x{B9FA}\x{C8CB}"
'I am 中国人'.encode('gbk', 'utf-8').encoding #=> #<Encoding:GBK>
CSV windows上中文乱码问题解决方案
导出csv在windows上中文乱码
这是因为windows的Excel软件比较霸道,utf-8的文字就不给你默认识别出来,
可以用 'your_content'.encode('gbk', 'utf-8')
来转换为gbk格式并输出。
send_data('your_content'.encode('gbk', 'utf-8'), filename: "Some_Template.csv")
导入
require 'csv' # 这里用CSV
a_file = CSV.open(uploader.file.instance_variable_get(:@file), encoding: 'gbk:utf-8') # a_file是二维数组。为了应对windows用户导入,需要用`encoding: 'gbk:utf-8'`。gbk是原始编码; utf-8是转后编码,用于存储到数据库中