2016-09-27 110 views
0

我用的iconv替換字符:如何與它們各自的字在紅寶石替換非ASCII字符1.8.7

<%= 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" 

如何獲得iras的nonascii字符的完整翻譯?

謝謝。

回答

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)。但是,我不知道uselocale在Ruby中是否可用。
+0

但即時通訊使用紅寶石1.8.7 ..我無法使用像上面提到的 –