0

苹果的文件指出

字符串对象实现为 Unicode 字符数组

但是,unichar很可能在unsigned short幕后的数据类型的大小只有 16 位,这使得无法用unichar. 我如何在脑海中调和这两个事实?

4

2 回答 2

1

您是正确的,Apple 的文档在真正表示 UTF-16 代码点时错误地引用了 Unicode 字符。

在 Unicode 的早期,人们希望它不会超过 16 位,但它确实做到了。Apple 和 Microsoft(可能还有其他公司)都使用 16 位整数来表示“Unicode 字符”,即使某些字符必须由代理对表示。

处理这种情况的各种方法NSString(加上组合字符)并返回给定字符的范围。例如-rangeOfCharacterFromSet:...-rangeOfComposedCharacterSequences...

于 2012-06-10T19:18:55.667 回答
0
  1. 不确定字符串是否由unichar数据类型表示。“字符串对象被实现为 Unicode 字符数组”并不意味着它在源代码中存储为unichar *. 你不知道它是如何实现的,是吗?
  2. 如果unichar不是无符号短线怎么办?如果它是 32 位或 64 位数据类型怎么办?
于 2012-06-10T18:07:54.283 回答