我可以通过"hello"
调用某种方法来获取'\u0068\u0065\u006c\u006c\u006f'
吗?
答案 0 :(得分:2)
是和否。 String#codepoints
以整数数组形式返回:
"hello".codepoints #=> [104, 101, 108, 108, 111]
如果你需要它作为转义序列,试试这个:
"hello".codepoints.map {|c| "\\u#{sprintf("%04x", c)}"}.join
如果你想要另一个解决方案(在评论中归功于@MattyK):
"hello".codepoints.map{|c| '\u%04X' % c}.join
答案 1 :(得分:1)
喜欢这个吗?
"hello".unpack('U*').map{ |i| "\\u" + i.to_s(16).rjust(4, '0') }.join
=> "\\u0068\\u0065\\u006c\\u006c\\u006f"