有没有办法获得a的长度(以字节为单位) CFString 给定任意字符编码?这似乎是可能的,因为该功能 CFStringGetSmallestEncoding 必须已经做一些计算,但我不想使用最小的编码,我想知道如果我想要 UTF-8 编码或其他可变宽度字符编码的字节,我可能需要分配多大的缓冲区。

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

有帮助吗?

解决方案

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

请记住,CFStringGetMaximumSizeForEncoding 的复杂度为 O(1),而 lengthOfBytesUsingEncoding:字符串的长度为 O(n) (您实际上执行了两次转换),因此您最好使用 CFStringGetMaximumSizeForEncoding 来分配缓冲区。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top