我有一个通过常规上传的文件form_for
,这给了我ActionDispatch::Http::UploadedFile
params 哈希中的一个对象,我可以调用它.read
来获取内容。我现在需要将文件嵌入到 XML 文档中。我现在使用常规的 Ruby 字符串来构造 XML。Rails 字符串的默认编码是 utf-8。
因此我得到错误Encoding::UndefinedConversionError
,"\x89" from ASCII-8BIT to UTF-8
。
以下文件会发生这种情况:
what-matters-now-1.pdf:应用程序/八位字节流;字符集=二进制 example.csv:文本/纯文本;字符集=utf-8 调查.png:图片/png;字符集=二进制
它不会发生在:
my_test.txt:文本/纯文本;charset=us-ascii
我尝试更改编码,但出现相同的错误:
params[:file].read.encode('utf-8')