簡體   English   中英

如何在ruby 1.8.7中用其各自的字符替換非ASCII字符

[英]how to replace non ascii character with their respective character in ruby 1.8.7

我用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字符的完整翻譯?

謝謝。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM