0

文字列を指定すると、英語または日本語(ワイド文字)または他の言語が含まれる場合があります

この文字列の最初の文字/部分文字列を取得するにはどうすればよいですか?

例: "Give" => "G" "日本" => "日"

ありがとう!

4

3 に答える 3

2

文字列に正しいエンコーディングが設定されている限り、これはrubyに組み込まれています。

$ 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を使用する必要はありません。

于 2012-05-04T23:08:08.337 に答える
0

ActiveSupport のCharsクラスを使用できます

string = "日本"
string.mb_chars[0]
=> "日"
于 2012-05-04T22:40:28.717 に答える
0

「ActiveRecord」がある場合は、mb_chars を使用できます。

または、標準ライブラリを使用できます。

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

「codepoint」は、文字列の実際のエンコーディングを通じて列挙子を提供し、「take」は必要な量の文字を取ります。または、使用できます

str.codepoints.to_a[0]

文字列のエンコーディングを配列に変換します。短い弦には適していますが、長い弦には適していません。

于 2012-05-04T22:47:07.260 に答える