请求rails时编码xls文件

Posted

技术标签:

【中文标题】请求rails时编码xls文件【英文标题】:Encoding xls file when requested rails 【发布时间】:2014-06-29 11:30:16 【问题描述】:

我使用 html 表定义作为模板导出到 rails 中的 xls。这里有描述:http://railscasts.com/episodes/362-exporting-csv-and-excel?view=asciicast

我有一个 XLS 文件生成器,它可以正常工作,当从浏览器请求时,它会下载文件并以正确的编码在 Excel 中显示它。当从 HTTP 客户端请求时,我也收到了正确的俄语文本。我想将此文件附加到电子邮件中,因此我通过ActionDispatch::Integration::RequestHelpers 提出请求:

session.get('issues#index', format: :xls,)

因此在 session.response.body 中有问号而不是俄语文本。还有

encode("UTF-8", :invalid => :replace, :undef => :replace, :replace => "")

没有帮助,它只是没有任何改变。 可能是什么原因?或者也许告诉我另一种附加文件的方法以避免此类问题?

【问题讨论】:

【参考方案1】:

解决方案:发送http header Accept-lenguages=ru-RU

结果查询:

session.get('issues#index', format: :xls, 'HTTP_ACCEPT_LANGUAGE' => 'ru-RU')

【讨论】:

以上是关于请求rails时编码xls文件的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 4 中导入 xls 文件不起作用 Roo::Excel.new

从 .xls 文件读取数据时出现 Python 错误

Rails 中的 Spreadsheet.open 给出此错误“未知编码名称 - MACINTOSH”

找不到可安装的 ISAM。上传 Excel 文件 (.xls) 格式时

手机联系人批量导入(字符编码xls转vcf)

exceljs节点模块读取.xls文件时出错