ruby-on-rails – Rails send_data抛出“UTF-8中的无效字节序列”…但为什么?

我使用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')

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...