Ruby版本:ruby 2.2.2p95(2015-04-13修订版50295)[x86_64-darwin14]
Readline版本:6.2
我正在使用一些表情符号,除了2和表情符号之外,其中许多表现正常。这是一些终端输出:
(byebug) ""
"\u{1F32D}"
(byebug) ""
""
(byebug) ""
"\u{1F37E}"
有人能告诉我这里发生了什么吗?它只是一些编码螺旋与irb?我可能会因为长时间摔跤而失明,所以如果有更多的信息需要回答,请告诉我。
答案 0 :(得分:2)
Ruby可能出于各种原因显示带有各种反斜杠编码的字符串,其中一个是不规则字符。例如:
"
"
# => "\n"
'"'
# => "\""
这并不意味着字符串包含实际的反斜杠,而是由inspect
显示的版本包含一个。这是一个悠久的传统,至少可以追溯到20世纪70年代的C时代\n
,这已经被理解为"换行符#34;。
在表情符号的情况下,您可能会发现有些是显示的,而其他的则不是。这可能是您正在使用的Ruby版本与终端设置之间的交互。随着表情符号的不断推出,你可能会发现老版本可以正常显示,但是Ruby对新版本没有足够的信心来渲染它们,或许担心这是一个无效的Unicode字符。它不是显示空白或臭名昭着的问号字符,而是显示字符的文字代码。