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