Ruby on rails 使用axlsx gem生成Excel文件时发生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打开文件,然后用户可以保存文件,如果需要的话 有人见过这个错误吗?我在一个规范中见过同样的错误。我还没

我正在尝试使用生成Excel文件。这是一个Ruby Rails应用程序,用户可以在浏览器中查看报告,并可以单击链接将数据导出到Excel。但是,我得到以下错误:

“ArgumentError(UTF-8中的字节序列无效)。”

以下代码行出现此错误:

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?