Чтение имени файла в нескольких ОС без проблем кодирования с Ruby - PullRequest
2 голосов
/ 30 марта 2011

Я хочу получить все имена файлов в UTF-8.Например, после того, как я прочитал имя файла в Windows, я делаю

filename = Iconv.iconv("UTF-8", "Windows-1251", filename)

В Ubuntu я не конвертирую имя файла и не получаю его в UTF-8.Может быть, существует какой-то метод определения кодировки имени ОС?

1 Ответ

0 голосов
/ 25 июня 2011

Я делаю это на Ruby 1.9, когда хочу убедиться, что все в UTF-8:

if filename.encoding.to_s != 'UTF-8'
  filename.encode!('UTF-8')
end

Если ваша ОС не дает имя файла, закодированное с помощью системы кодирования, которая не поддерживает некоторые специальныеСимволы, найденные в имени файла, могут быть закодированы в UTF-8 без разбора.

...