我的目標是將所有希臘文文件重命名爲英文文件(只需將希臘字符更改爲各自的英文文件)。這是我的代碼:文件名中的希臘字母
lettersmap = {"α"=>"a"}
puts lettersmap["α"]
Dir.foreach('.') do |file_name|
file_name = file_name.split('')
file_name.each do |letter|
puts lettersmap[letter]
end
end
end
在puts lettersmap["α"]
,它打印a
。如果我有一個名爲α.txt
的文件,它不會。我試過letter.encoding(Encoding::UTF_8)
和letter.force_encoding(Encoding::UTF_8)
;既沒有工作。如何使用希臘字母索引lettersmap
?
確定文件名是' 「α」 .txt'(或' 「\」 α\」。TXT 「'),而不是'α.txt'('」 α.txt「')? – sawa
@sawa對不起,你的文件被命名爲「α.txt」(沒有引號),修復了這個問題 – Crone
爲什麼不使用'file_name.each_char'並避免'split'部分?您可能只想使用['tr'](http://ruby-doc.org/core-2.2.3/String.html#method-i-tr)重新映射一個鏡頭中的所有字母。 – tadman