转换shift_jis文件名乱码脚本

转换日站下载的文件shift_jis编码文件名乱码。

将脚本文件和乱码文件放在同一目录下,执行

ruby convert.rb

即可, 请放在英文目录下执行

convert.rb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

require 'find'
require 'FileUtils'

err = []
Find.find("."){|f|
next unless FileTest.file?(f)
begin
from = f.dup.encode("utf-8","shift_jis")
to = from.encode("shift_jis","utf-8")
save_path = File.dirname(File.expand_path(to))
next if f == to
FileUtils.mkdir_p(save_path)
FileUtils.cp(f, to)
rescue
p "errorfile #{f}, skipped"
err << f
next
end
}
p "finished"
p "errors #{err.size}"
exit if err.size == 0
p "error files:"
err.each{|e|p e}