我使用iconv替换字符:
<%= Iconv.iconv("ascii//translit", "utf-8", "ENDÜœSTRIYEL").to_s %>
显示, END?oeSTRIYEL
而在irb中,它显示如下:
irb(main):006:0> Iconv.iconv('ascii//translit', 'utf-8', 'ENDÜœSTRIYEL').to_s
=> "ENDUoeSTRIYEL"
如何在irb中完整翻译nonascii字符?
感谢。
答案 0 :(得分:0)
glibc的iconv工具具有取决于语言环境的音译:
$ echo "ENDÜœSTRIYEL" | LC_ALL=C iconv -f utf-8 -t ascii//translit
END?oeSTRIYEL
$ echo "ENDÜœSTRIYEL" | LC_ALL=de_DE.UTF-8 iconv -f utf-8 -t ascii//translit
ENDUEoeSTRIYEL
$ echo "ENDÜœSTRIYEL" | LC_ALL=ja_JP.UTF-8 iconv -f utf-8 -t ascii//translit
ENDUoeSTRIYEL
如您所见,三种不同的语言环境有三种不同的结果。
如果您要托管的服务器旨在处理来自不同国家/地区的用户的输入,您有两种选择:
uselocale
,而不是setlocale
)。但是,我不知道Ruby中是否有uselocale
。