[英]UTF-8 error when generating Excel file using axlsx gem
我正在嘗試使用axlsx gem生成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_encoding
,因此生成器類執行to_stream.read.force_encoding("BINARY")
。 這似乎有效:我的UTF-8字符串在創建的文檔中的LibreOffice中看起來很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.