basyura's blog

あしたになったらほんきだす。

コードポイントなにがし

Unicode のコードポイントを指定して文字を得たり、逆にある文字のコードポイントを調べたり、ということをする機会は結構多いと思います。 が、Ruby でそれをやる方法をぐぐってもあまり上位に情報が出てこないなー、と思ったので簡単にまとめておきます。

Ruby にて文字と Unicode コードポイントの相互変換を行う

自分メモ

p "".unpack("U*")[0] #=> 25991
p [25991].pack("U*") #=> "文"
p 25991.to_s(16) #=> "6587"
p 25991.chr("UTF-8") #=> "文"
p "\u6587" #=> "文"
p "\u{6587}" #=> "文"
p [0x6587].pack("U*") #=> "文"

"".each_codepoint do |cp|
  p cp #=> 25991
end