搜索了下这是 windows 下面 excel 的问题,纯文本打开就没有问题,针对这种情况请问我能在 controller respond 的时候做点什么解决吗?譬如加个 utf-8 编码啥的?
用 open office 吧,可以选择编码
#1 楼 @tumayun excel 算是公司标配...没有办法因为这个说服他们换的...
在 rails 这边就没有什么能做了的吗
windows 中文的话也许需要 gbk 了吧。。。
转换成 gbk 的
Windows 默认使用的 GBK 编码。可以判断 UA,如果是 window 用户,导出时使用 iconv 转成 GBK 编码
def conv2gbk_if_win(str) if request.headers["HTTP_USER_AGENT"] =~ /Windows/ require 'iconv' Iconv.new("GBK", "UTF-8").iconv(str) else str end end
我用这货来处理 windows 的编码问题,不过 ICU 有时候会将 gb18030 识别成 韩文,暂时无解。charlock_holmes
#6 楼 @reyesyang 非常感谢这位大哥的代码,用了,还是不行...我干脆将那一列都从生成的报告中剔除了...
@reyesyang 不用这么麻烦,完全无需转码,给 csv 文件加个 BOM 就可以了
csv_data = "\xEF\xBB\xBF#{csv_data}"
#9 楼 @luikore Cool,学习了
#9 楼 @luikore 佩服得五体投地
#9 楼 @luikore 果断去看看原理,(BOM => Bype Order Mark)