加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails send_data抛出“UTF-8中的无效字节序列

发布时间:2020-12-16 22:19:05 所属栏目:百科 来源:网络整理
导读:我使用Rails生成带有可执行文件wkhtmltopdf的PDF,然后使用send_data将结果作为PDF文件发送给用户. view = ActionView::Base.new(ActionController::Base.view_paths,{}) html = "h1A heading/h1" pdfdata = `echo '#{html}' | #{RAILS_ROOT}/lib/pdf/wkhtmlt
我使用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从send_data方法引发ArgumentError(UTF-8中的无效字节序列).将其更改为发送“foobar”为:type => text / html使它工作,所以它绝对有一个pdfdata的问题.

我不明白send_data是不是应该发送二进制数据?当然这是无效的UTF-8.还是我错过了什么?

谢谢

解决方法

Rails假定UTF-8.明确地说明它是二进制数据解决问题.谢谢你的帮助.
pdfdata.force_encoding('BINARY')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读