У меня есть задача rake, которая загружает XML-документ по HTTP и записывает его в файл. Загруженный XML имеет довольно неприятную кодировку, но он кодируется как 8-битный ASCII с кодовой страницей «windows-1254» в XML.
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)}
Приведенный выше код работает, когда я выполняю его как простой скрипт без ошибок. Однако, когда я делаю то же самое, что и рейк, через рельсы, я получаю следующее исключение:
"\xF0" from ASCII-8BIT to UTF-8
Это должно быть как-то связано с кодировкой строки, но я не уверен, почему это происходит или почему код ведет себя по-разному в среде rails и за ее пределами.