Cocoa Touch的规范NSUnicodeStringEncoding是什么意思?

时间:2011-01-30 05:11:59

标签: iphone objective-c cocoa-touch encoding

是UTF-16吗? 32?还有别的吗?

我想查看性能原因,因为我将很多字符串从UTF-8转换为“native NSString”,性能损失似乎落在__CFFromUTF8上,这是一个内置的转换功能。顺便说一句:我只是猜测NSUnicodeStringEncoding是内部使用的,因为NSString的{​​{1}}返回该值(即对于国际字符串;当使用ANSI时,返回MacRomans)。

1 个答案:

答案 0 :(得分:2)

使用dataUsingEncoding:进行测试表明NSUnicodeStringEncoding是小端UTF-16,前面带有字节顺序标记(在模拟器和实际设备上),Apple的String Programming Guide for Cocoa表示“NSString对象”在概念上是UTF-16,具有平台字节序“,所以我认为假设UTF-16在内部使用是合理的。

(同样的指南继续说“这并不一定意味着他们的内部存储机制”,所以他们将来完全保留改变这一点的权利)