一个朋友将一个命令粘贴到一个包含角色的Slack聊天室中*
。这看起来很正常,*
但不是:
$ uniprops '*'
uniprops: no character named ‹*›
如果uniprops
在星号上运行时在计算机上键入时会得到:
$ uniprops '*'
U+002A ‹*› \N{ASTERISK}
\pP \p{Po}
All Any ASCII Assigned Basic_Latin Punct Is_Punctuation Common Zyyy Po P
Gr_Base Grapheme_Base Graph X_POSIX_Graph GrBase Other_Punctuation
Pat_Syn Pattern_Syntax PatSyn POSIX_Graph POSIX_Print POSIX_Punct Print
X_POSIX_Print Punctuation Unicode X_POSIX_Punct
通过传递它,我还可以看到它不是实际的星号od
:
$ printf '*' | od -c
0000000 * 342 200 213
0000004
正常人会给出:
$ printf '*' | od -c
0000000 *
0000001
这是一个更大的神秘人物:
*
和正常的星号(是的,它们看起来确实相同):
*
因此,uniprops
不知道这是什么,我也无法在http://www.fileformat.info/上找到它。我确实知道粘贴它的朋友在OS X上(我在Linux上),并且它在他们的系统上作为常规星号起作用。我假设Slack以某种方式改变了它。那么,有人知道这个角色是什么吗?
请注意,您不能直接从问题中复制奇怪的字符。显然,Stack Exchange引擎剥离了尾随的非打印字符。单击“编辑”链接,然后从那里复制。
uniprops
是Unicode::Tussle
Perl模块中包含的一个简洁的小脚本,用于识别并打印有关您给它的字符的信息。
urxvt
,它已经显示为*<200b>
。
'*\u200b'
)
ord("*")
了您粘贴的字符串和本机*
密钥,并且两者都使用了相同的数字(42)。