4

在尝试解析一些 unicode 文本字符串时,我遇到了一个我找不到任何定义的不可见字符。如果我将它粘贴到文本编辑器并显示不可见的内容,我可以看到它看起来像一个项目符号 (• alt-8),通过复制/粘贴它们,我可以看到它具有类似于空格或制表符的效果,但这些都不是。

我需要对其进行测试,例如...

 if(uniChar == L'\t') 

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

它在 UTF-8 中有字节 0xc2 0xa0。

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

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

4

1 回答 1

9

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

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

在代码中,如果您将其作为unichar,您可以将其与L'\x00A0'.

于 2013-03-01T10:38:14.887 回答