这个unicode隐形字是什么?

时间:2013-02-28 17:55:37

标签: unicode character invisible

在尝试解析一些unicode文本字符串时,我遇到了一个无法找到任何定义的隐形字符。如果我将它粘贴到文本编辑器并显示不可见,我可以看到它看起来像一个子弹点(•alt-8),通过复制/粘贴它们,我可以看到它有一个像空格或制表符的效果,但这不是那些。

我需要测试它,比如......

 if(uniChar == L'\t') 

但当然我需要提供一些与之匹配的东西。

UTF-8中的字节为0xc2 0xa0。

如果没有人有定义,是否有任何狡猾的方法来测试我无法定义的东西?

(我碰巧在Objective-C,OSX,Xcode中使用NSStrings,但我认为没有任何影响。)

1 个答案:

答案 0 :(得分:8)

UTF-8中的字节C2 A0编码U+00A0 ɴᴏ-ʙʀᴇᴀᴋ sᴘᴀᴄᴇ,例如,可用于隔离显示组合标记。它是 作为命名的HTML实体。它与U +0020sᴘᴀᴄᴇ几乎相同,只是它可以防止在它之前或之后的换行,并且可以作为双向布局的数值分隔符。

当您要求文本编辑器显示不可见时,您看到的点恰好是文本编辑器选择显示空格的字形。这并不意味着有问题的人物是U + 00B7ᴍɪᴅᴅʟᴇᴅᴏᴛ,这绝对不是看不见的。

在代码中,如果您将其作为unichar,则可以将其与L'\x00A0'进行比较。