我正在尝试将 unicode 连字符减号字符插入到文本字符串中。我看到“无效的通用字符”错误,内容如下:
u+002D(连字符减号)
[textViewContent insertString:@"\u002D" atIndex:cursorPosition.location];
然而,这些工作正常:
u+2212(减)
[textViewContent insertString:@"\u2212" atIndex:cursorPosition.location];
u+2010(连字符)
[textViewContent insertString:@"\u2010" atIndex:cursorPosition.location];
我在这里查阅了一些现有的 Unicode 讨论,但我还没有找到一个可以解释我的示例中导致第一个错误的不同之处的讨论。洞察力非常赞赏。
通用字符名称的使用有一些限制。在 C99 和 C++98 中,不允许使用引用基本字符集(包括 U+002D)中的字符的字符。
C++11 更新了此要求,因此如果您位于字符串或字符文字中,则允许您使用引用基本字符的 UCN。根据您使用的编译器版本,我猜测您可以使用 Objective-C++11 来使您的代码合法。
也就是说,既然这个字符是 ASCII 和基本字符集的一部分,为什么不直接按字面意思写呢?
@"-"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)