@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Ruby で文字列の Unicode コードポイントと \uXXXX 表記用の 16 進数を得る

String#each_codepointFixnum#to_s に基数 16 を渡す。

$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
$ irb
irb(main):001:0> "ほげ".each_codepoint.to_a
=> [12411, 12370]
irb(main):002:0> "ほげ".each_codepoint.map{|n| n.to_s(16) }
=> ["307b", "3052"]
irb(main):003:0> ["\u307b", "\u3052"]
=> ["", ""]

参考: Ruby にて文字と Unicode コードポイントの相互変換を行う - vivid memo