ruby - Ruby 中 Windows 上的 Unicode 文件名

标签 ruby unicode windows-7 internationalization

我有一段代码看起来像这样:

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

当我列出的目录中有一个名为 こんニちは世界.txt 的文件时,问题就来了。 在 Windows 7 机器上我得到输出:

???????.txt

通过谷歌搜索,在 Windows 上正确读取此文件名似乎是一项不可能完成的任务。有什么建议吗?

最佳答案

我遇到了同样的问题,只是想出了如何在 Windows 中获取 UTF-8 目录的条目。以下对我有用(使用 Ruby 1.9.2p136):

opts = {}
opts[:encoding] = "UTF-8"
entries = Dir.entries(path, opts)
entries.each do |entry|
  # example
  stat = File::stat(entry)
  puts "Size: " + String(stat.size)
end

关于ruby - Ruby 中 Windows 上的 Unicode 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2703283/

相关文章:

javascript - 双向、URL 友好的 Node.js slug 函数

c++ - windows 7 和 8 的常用对话框可以 Hook 吗

ruby - 如何在 YARD 中记录一个参数数量可变的函数?

Ruby - 如何重新定义类方法?

Python:将 Unicode 转换为 ASCII,对于 CSV 文件没有错误

windows - 部署 Datasnap 服务

windows-7 - 如何使用 Windows 7 中的自动运行从闪存驱动器打开网页?

ruby - Ruby MRI 是什么样的解释器?

ruby - ruby 如何区分单引号字符串和双引号字符串?是否涉及C指针?

python os.walk 和 unicode 错误