我想生成一个目录中的文件列表。部分文件名包含汉字。
例如:[测试].Test.txt
我正在使用以下代码:
require 'find'
dirs = ["TestDir"]
for dir in dirs
Find.find(dir) do |path|
if FileTest.directory?(path)
else
p path
end
end
end
运行脚本会生成一个文件列表,但中文字符会被转义(替换为反斜杠后跟数字)。使用上面的示例文件名将产生:
“TestDir/[\312\324\321\351]Test.txt”而不是“TestDir/[测试].Test.txt”。
如何修改脚本输出汉字?
最佳答案
Ruby 需要知道您正在处理代码中的 unicode。使用 KCODE 设置适当的字符编码,如下所示:
$KCODE = 'utf-8'
我认为 utf-8 对汉字来说已经足够好了。
关于ruby - 使用 Ruby 在文件名中包含中文字符的递归目录列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/309539/