【发布时间】:2013-06-17 19:24:18
【问题描述】:
我想在 NSString 中使用 '
"Character '<' cannot be specified by a universal character name"
当我使用时:
NSString *text = @"Some Text: \u003C";
''<':"some string <" ?
我无法控制字符串值本身,上面的值作为 in-line 是出于演示目的。
【问题讨论】:
-
好吧,
NSString *text = @"Some Text: >";? -
@H2CO3 Maybe Will 需要一个框架来将 Unicode 代码点转换为常规字符
-
很奇怪。我刚刚尝试过,对于许多不同的值,例如
\u0020(空格)或`\u0041`(A),都会出现类似的错误。 -
@rmaddy - 是的,这很奇怪,但在标准中也这样定义“通用字符名称不应指定短标识符小于 00A0 的字符,而不是 0024 ($)、0040 ( @) 或 0060 ('),也不是 D800 到 DFFF 范围内的一个。”标准没有说明为什么他们提出了这个限制。
-
@114100웃 - 我引用了 C11 ISO 标准,第 6.4.3 节通用字符名称,第 2 段约束。如果您搜索 N1570,您应该会在网络上找到(草案)标准的 PDF 副本 - 或者您可以从 ISO 购买最终版本的 PDF。该段落有脚注:“不允许的字符是基本字符集中的字符和 ISO/IEC 10646 为控制字符、字符 DELETE 和 S-zone 保留的代码位置(保留供 UTF-16 使用) 。”但这并不能解释 reasoning 禁止可以输入的十六进制字符形式。 HTH。
标签: ios objective-c unicode