在多个操作系统中读取文件名而不用Ruby编码问题

时间:2011-03-30 17:09:26

标签: ruby encoding character-encoding filenames

我希望以UTF-8获取所有文件名。例如,我在Windows中读取文件名后,我

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

在Ubuntu中我不转换文件名并以UTF-8获取它。也许存在一些确定OS文件名编码的方法?

1 个答案:

答案 0 :(得分:0)

我想在确保内容为UTF-8时在Ruby 1.9上执行此操作:

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

除非您的操作系统提供的编码系统编码的文件名不支持文件名中的某些特殊字符,否则可以将其编码为UTF-8而无需使用hickup。