Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby中以unicode代码的形式打印字符串_Ruby_String_Unicode - Fatal编程技术网

在Ruby中以unicode代码的形式打印字符串

在Ruby中以unicode代码的形式打印字符串,ruby,string,unicode,Ruby,String,Unicode,有什么方法可以调用“hello”来获取'\u0068\u0065\u006c\u006c\u006f'?像这样吗 "hello".unpack('U*').map{ |i| "\\u" + i.to_s(16).rjust(4, '0') }.join => "\\u0068\\u0065\\u006c\\u006c\\u006f" 是和否。String#codepoints以整数数组的形式返回这些值: "hello".codepoints #=> [104, 101, 108,

有什么方法可以调用“hello”来获取
'\u0068\u0065\u006c\u006c\u006f'

像这样吗

"hello".unpack('U*').map{ |i| "\\u" + i.to_s(16).rjust(4, '0') }.join
=> "\\u0068\\u0065\\u006c\\u006c\\u006f"
是和否。
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@MattyK:说得好。忘了你也可以在Ruby中这么做,而不仅仅是python。@MattyK我实际上最喜欢你的版本,所以我把它添加到Linuxios的答案中并选择了它。@Em拟人化:正如你所知,SE的政策是只让帖子的所有者向他们的帖子添加新内容。我很高兴添加它,这就是为什么你的编辑被拒绝的原因。@An拟人:当然。我只是想让你知道。@EdwardFalk我在遍历每个字符,使用
#ord
获得数字表示,然后使用
rjust(4,'0')
和前缀
'\u'
。这是可行的,我只是希望有一种方法可以在一条(短)线上完成这一切。请参阅和。
"hello".codepoints.map{|c| '\u%04X' % c}.join