1

有没有办法获取CFString给定任意字符编码的字节长度?这似乎是可能的,因为该函数CFStringGetSmallestEncoding必须已经进行了一些计算,但是我不想使用最小的编码,我想知道如果我想要 UTF-8 编码的字节或者可能需要分配多大的缓冲区另一种可变宽度字符编码。

是否可以?或者我是否需要使用分配最大可能的缓冲区大小CFStringGetMaximumSizeForEncoding

4

1 回答 1

2

你有可用的基金会吗?如果是这样,您可以将 CFStringRef 转换为 NSString* 并使用 lengthOfBytesUsingEncoding:。

请记住,尽管 CFStringGetMaximumSizeForEncoding 是 O(1),而 lengthOfBytesUsingEncoding: 在字符串的长度上是 O(n)(您实际上是在进行两次转换),因此使用 CFStringGetMaximumSizeForEncoding 分配缓冲区可能会更好。

于 2009-04-29T13:17:30.947 回答