Rubyリファレンス: Home

codepoints (String)

Edit   History

Ruby 1.9

標準クラス・モジュール > String > codepoints

str.codepoints {|integer| block }

codepointsメソッドは、文字列中の文字のコードポイントを繰り返し取り出します。コードポイントとは、1文字を表す整数のコードです。ブロック引数integerにコードポイントを入れながら、文字数だけブロックを繰り返します。戻り値はレシーバ自身です。

each_codepointメソッドはcodepointsの別名です。

次の例は、文字列中の5つの文字のコードポイントを16進数で表示します。文字列の文字コード(Encoding)がUTF-8などユニコード系の場合は、コードポイントはユニコード番号になります。この例の文字コードがShift_JISだと、結果は8abf 8e9a 41 42 43となります。

# encoding: utf-8
s = "漢字ABC"
s.codepoints {|cp| print cp.to_s(16) + " " }
puts ""
6f22 5b57 41 42 43

ブロックを省略したときは、Enumeratorオブジェクトを返します。

# encoding: utf-8
s = "漢字ABC"
puts s.codepoints.collect {|cp| sprintf("U+%04X", cp) }.join(", ")
U+6F22, U+5B57, U+0041, U+0042, U+0043

関連項目