doc*_*nge 11 ruby-on-rails 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"
Run Code Online (Sandbox Code Playgroud)
PDF生成正确,但Rails ArgumentError (invalid byte sequence in UTF-8)从send_data方法抱怨.更改它以发送"foobar" :type => text/html使其工作,所以它肯定有问题pdfdata.
我不明白.是不是send_data应该发送二进制数据?当然它不是有效的UTF-8.或者我错过了什么?
谢谢
doc*_*nge 12
Rails假定为UTF-8.明确告诉它是二进制数据解决了这个问题.谢谢你的帮助.
pdfdata.force_encoding('BINARY')
Run Code Online (Sandbox Code Playgroud)