2012-05-04 18 views

回答

0

可以使用的ActiveSupport的Chars class

string = "日本" 
string.mb_chars[0] 
=> "日" 
0

如果你的ActiveRecord',你可以使用mb_chars。

或者你也可以使用標準庫:

str = '日本' 
str.codepoints.take(1) 
#日 

「碼點」通過字符串的實際編碼給出了一個枚舉和「採取」將帶你想字符的任意量。或者你可以使用

str.codepoints.to_a[0] 

它會將字符串的編碼轉換爲數組。對於短弦而言是好的,但對大的弦不好。

2

這是建立在這麼長的紅寶石,你有正確的編碼設置你的字符串:

$ ruby -ve 'p "日本".encoding, "日本"[0]' 
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0] 
#<Encoding:UTF-8> 
"日" 

沒有必要使用mb_chars也不ActiveRecord的。

相關問題