gpt4 book ai didi

ruby-on-rails - Rails send_data 抛出 "invalid byte sequence in UTF-8"... 但为什么呢?

转载 作者:行者123 更新时间:2023-12-04 02:06:21 27 4
gpt4 key购买 nike

我正在使用 Rails 生成带有可执行文件 wkhtmltopdf 的 PDF,然后使用 send_data 将结果作为 PDF 文件发送回用户。

 view = ActionView::Base.new(ActionController::Base.view_paths,  {})
html = "<h1>A heading</h1>"
pdfdata = `echo '#{html}' | #{RAILS_ROOT}/lib/pdf/wkhtmltopdf-i386 - -`
send_data pdfdata, :filename => 'readthis.pdf', :disposition => 'attachment', :type => "application/pdf"

PDF 生成正确,但 Rails 提示 ArgumentError (invalid byte sequence in UTF-8)来自 send_data 方法。将其更改为发送“foobar”为 :type => text/html让它工作,所以它肯定有问题 pdfdata .

我不明白。不是 send_data应该发送二进制数据?当然,它不是有效的 UTF-8。或者我错过了什么?

谢谢

最佳答案

Rails 假定使用 UTF-8。明确告诉它它是二进制数据可以解决问题。谢谢你的帮助。

pdfdata.force_encoding('BINARY')

关于ruby-on-rails - Rails send_data 抛出 "invalid byte sequence in UTF-8"... 但为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3184238/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com