Имена файлов Unicode в Windows в Ruby

У меня есть часть кода, который похож на это:

Dir.new(path).each do |entry|
    puts entry
end

Проблема возникает, когда у меня есть файл под названием .txt в каталоге, который я перечисляю. На машине Windows 7 я получаю вывод:

???????.txt

От поиска с помощью Google вокруг, правильно читая это имя файла на окнах, кажется, невозможная задача. Какие-либо предложения?

10
задан Matthew Simoneau 3 November 2015 в 02:15
поделиться

1 ответ

Вам не повезло с чистым рубином (1.8 или 1.9.1), поскольку он использует ANSI-версии Windows API.

Похоже, Ruby 1.9.2 будет поддерживать имена файлов Unicode в Windows. Этот отчет об ошибке имеет целью 1.9.2. Согласно это объявление Ruby 1.9.2 будет выпущено в конце июля 2010 года.

Если вам это действительно нужно раньше, вы можете попробовать использовать FindFirstFileW и т. Д. Напрямую через Win32API.new или win32-api .

4
ответ дан 3 December 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: