TL;DR
String.ord
or String.unpack("U*")
を使う
'あ'.ord # 12354
'あ'.unpack("U*") # [12354]
ordとunpackの違い
返り値の型が違うので実装上は注意が必要です。
ord
は最初の文字のUnicodeをIntで返しますが、unpack
は1文字ずつのUnicodeをArrayで返します。
# 対象が1文字
'あ'.ord # 12345
'あ'.unpack("U*") # [12354]
# 対象が複数文字
'あいうえお'.ord # 12354
'あいうえお'.unpack("U*") # [12354, 12356, 12358, 12360, 12362]
# ordを使うとちょっと複雑になる
'あいうえお'.chars.map{|c|c.ord} # [12354, 12356, 12358, 12360, 12362]
厳密な違いは公式リファレンスをご参照ください。
その他
公式リファレンスを読んでも何進数なのか、Unicode返してるのか等が明記されていなかったのでまとめてみました。
golang
のrune
と同じ事ができるので書き換えの際などにご参照いただけると。
突然出てきたgolangのお話はこちらの記事がわかりやすかったので気になる方はご参照ください。
Goのruneを理解するためのUnicode知識