0
我有一个rake任务,它通过HTTP下载XML文档并将其写入文件。下载的XML具有相当令人讨厌的编码,但它被编码为8位ASCII码,XML上的代码页为“windows-1254”。通过rails上的rake任务保存文档时出现编码错误
url = URI("http://report.paragaranti.com/rasyonet_xml_fund_data.asp")
http = Net::HTTP.new url.host
http.read_timeout = 120
response = http.get url.path
response.error! unless response.instance_of? Net::HTTPOK
filename = "#{Date.today}.xml"
File.open(filename, 'w') {|f| f.write(response.body)}
上面的代码在我将它作为一个简单的脚本执行时没有任何错误。然而,当我通过一个rake任务通过轨道做同样的事情,我得到以下异常:
"\xF0" from ASCII-8BIT to UTF-8
它必须是与该字符串的编码,但我不知道为什么会发生或为什么代码在rails环境和外部环境中具有不同的行为。