在尝试解析一些unicode文本字符串时,我遇到了一个无法找到任何定义的隐形字符。如果我将它粘贴到文本编辑器并显示不可见,我可以看到它看起来像一个子弹点(•alt-8),通过复制/粘贴它们,我可以看到它有一个像空格或制表符的效果,但这不是那些。
我需要测试它,比如......
if(uniChar == L'\t')
但当然我需要提供一些与之匹配的东西。
UTF-8中的字节为0xc2 0xa0。
如果没有人有定义,是否有任何狡猾的方法来测试我无法定义的东西?
(我碰巧在Objective-C,OSX,Xcode中使用NSStrings,但我认为没有任何影响。)
答案 0 :(得分:8)
UTF-8中的字节C2 A0编码U+00A0 ɴᴏ-ʙʀᴇᴀᴋ sᴘᴀᴄᴇ,例如,可用于隔离显示组合标记。它是
作为命名的HTML实体。它与U +0020sᴘᴀᴄᴇ几乎相同,只是它可以防止在它之前或之后的换行,并且可以作为双向布局的数值分隔符。
当您要求文本编辑器显示不可见时,您看到的点恰好是文本编辑器选择显示空格的字形。这并不意味着有问题的人物是U + 00B7ᴍɪᴅᴅʟᴇᴅᴏᴛ,这绝对不是看不见的。
在代码中,如果您将其作为unichar
,则可以将其与L'\x00A0'
进行比较。