err = [] Find.find("."){|f| nextunless 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)) nextif 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}