我有一个包含瑞典字符的字符串,并希望将其转换为基本英语。
name = "LänödmåtnÖng ÅjädårbÄn"
这些字符应按如下方式转换:
Å
使用A
å
使用a
Ä
使用A
ä
使用a
Ö
使用O
ö
使用o
有一种简单的方法吗?如果我尝试:
ascii_to_string = name.unpack("U*").map{|s|s.chr}.join
它返回L\xE4n\xF6dm\xE5tn\xD6ng \xC5j\xE4d\xE5rb\xC4n
作为ASCII,但我想将其转换为英语。
答案 0 :(得分:3)
使用OP的转换表作为tr
方法的输入:
#encoding: utf-8
name = "LänödmåtnÖng ÅjädårbÄn"
p name.tr("ÅåÄäÖö", "AaAaOo") #=> "LanodmatnOng AjadarbAn"
答案 1 :(得分:1)
答案 2 :(得分:1)
你已经得到了不错的答案,但有一种方法更容易记住(没有神奇的正则表达式):
name.parameterize
它将空格更改为短划线,因此您需要以某种方式处理它,例如通过单独处理每个单词:
name.split.map { |s| s.parameterize }.join ' '