我有一段代码看起来像这样:
Dir.new(path).each do |entry| puts entry end
当我在我列出的目录中有一个名为こんにちは世界.txt的文件时,会出现问题.
在Windows 7机器上,我得到输出:
???????.txt
解决方法
由于使用了ANSI版本的Windows API,所以您使用纯ruby(1.8或1.9.1)不幸.
看起来Ruby 1.9.2将支持Windows上的Unicode文件名. This bug report以1.9.2为目标.根据this announcement Ruby 1.9.2将于2010年7月底发布.
如果您以前真的需要它,您可以直接通过Win32API.new或win32-api
尝试使用FindFirstFileW等.