为什么ruby遍历中文文件时输出的结果为乱码?
各位ruby for su的大神们~~为什么当遍历目标文件的脚本 用su自带的ruby编辑器运行时 在选择到中文名称的files时会出现puts 乱码 但是使用SciTE.exe运行的时候puts 的就是文件的中文名。
def traverse_dir(file_path)
if File.directory? file_path
Dir.foreach(file_path) do |file|
if file !="." and file !=".." and !file.include? "su for max"
traverse_dir(file_path+"/"+file)
end
end
else
puts "File:#{File.basename(file_path)}"
end
end
>ruby 文件扫描.rb
File:爱的.skp
File:23456.skp
File:34567.skp
File:45678.skp
File:56789.skp
File:67890.skp
>Exit code: 0
这个是用SciTe运行后的puts的结果
File:°®µÄ.skp
File:23456.skp
File:34567.skp
File:45678.skp
File:56789.skp
File:67890.skp
这个是用su自带的ruby运行后的结果
用su自带的ruby运行后输出的中文名字就为乱码了。
def traverse_dir(file_path)
if File.directory? file_path
Dir.foreach(file_path) do |file|
if file !="." and file !=".." and !file.include? "su for max"
traverse_dir(file_path+"/"+file)
end
end
else
puts "File:#{File.basename(file_path)}"
end
end
>ruby 文件扫描.rb
File:爱的.skp
File:23456.skp
File:34567.skp
File:45678.skp
File:56789.skp
File:67890.skp
>Exit code: 0
这个是用SciTe运行后的puts的结果
File:°®µÄ.skp
File:23456.skp
File:34567.skp
File:45678.skp
File:56789.skp
File:67890.skp
这个是用su自带的ruby运行后的结果
用su自带的ruby运行后输出的中文名字就为乱码了。
没有找到相关结果
已邀请:
1 个回复
okjz
赞同来自: