簡體   English   中英

使用axlsx gem生成Excel文件時出現UTF-8錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM