2015-06-30 3 views
2

Я сохраняю CSV-файл из Интернета. В Интернете он выглядит правильно, но когда я сохраняю его внутри папки в своем приложении, я вижу, что символ «μ» отсутствует, и вместо него появляется « ».Проблема с кодировкой Ruby

страница, где я получаю данные не имеют кодировку в заголовке, в любом случае я указать кодировку для чтения в моем коде (грабли задачи), который заключается в следующем:

open("public/test.csv", "w:UTF-8") do |file| 
    open("http://url.CSV", "r:UTF-8") do |row| 
    file.write(row.read) 
    end 
end 

Любая помощь будет Понятно, я использую RubyMine кстати.

+0

Как вы знаете, кодировка исходного файла UTF-8? – Slicedpan

+0

Не кажется ли вам, что фактический URL-адрес будет проще? – Stefan

+0

Как вы просматриваете веб-файл, когда вы видите 'μ' в локальном файле, когда видите'? '(И это обычный знак вопроса ASCII или, возможно, знак вопроса с алмазным фоном)? –

ответ

3

Кодировка по умолчанию для HTTP - ISO-8859-1. Сохраненный CSV-файл используется эту кодировку, поэтому при чтении его в Ruby, вы должны правильно установить кодировку:

File.open('filename.csv', 'r:ISO-8859-1') do |f| 
    # do something with the contents 
end 
Смежные вопросы