Ruby on rails 使用axlsx gem生成Excel文件时发生UTF-8错误
我正在尝试使用生成Excel文件。这是一个Ruby Rails应用程序,用户可以在浏览器中查看报告,并可以单击链接将数据导出到Excel。但是,我得到以下错误: “ArgumentError(UTF-8中的字节序列无效)。” 以下代码行出现此错误:Ruby on rails 使用axlsx gem生成Excel文件时发生UTF-8错误,ruby-on-rails,axlsx,Ruby On Rails,Axlsx,我正在尝试使用生成Excel文件。这是一个Ruby Rails应用程序,用户可以在浏览器中查看报告,并可以单击链接将数据导出到Excel。但是,我得到以下错误: “ArgumentError(UTF-8中的字节序列无效)。” 以下代码行出现此错误: p.to_stream.read. 我使用的是Ruby 1.9.3和Rails 2.3.16。我没有序列化或试图将文件写入磁盘;我只希望Excel打开文件,然后用户可以保存文件,如果需要的话 有人见过这个错误吗?我在一个规范中见过同样的错误。我还没
p.to_stream.read.
我使用的是Ruby 1.9.3和Rails 2.3.16。我没有序列化或试图将文件写入磁盘;我只希望Excel打开文件,然后用户可以保存文件,如果需要的话
有人见过这个错误吗?我在一个规范中见过同样的错误。我还没有进一步研究它,但我现在强制编码为二进制:
# …
data = package.to_stream.read
data.force_encoding("BINARY")
expect(data).to be_present
我不认为这是一个好的解决办法,但我把它留在这里作为一个解决办法。如果我继续挖掘,我可能会更新这个答案
编辑:此后我尝试在代码本身中执行
force\u编码
,因此生成器类对\u stream.read.force\u编码(“二进制”)执行。这似乎有效:我的UTF-8字符串在创建的文档中的LibreOffice中看起来很好。你能在Rails之外复制错误吗?如果可以,发布一些代码作为要点,并将其链接到您的问题中。另外,您使用的是什么版本的Axlsx?