gpt4 book ai didi

ios - 获取以字节为单位的UTF-8字符串长度的最佳方法?

转载 作者:行者123 更新时间:2023-12-01 17:24:35 31 4
gpt4 key购买 nike

我想从NSString获取一个cString。
因此我们使用了cStringUsingEncoding:方法。
但是,不能保证cStringUsingEncoding:方法的返回值。
(Apple的文档:返回的C字符串仅在释放接收者之前保证是有效的。)
因此苹果推荐使用getCString:maxLength:encoding:方法。
我想将确切的长度传递给maxLength。

示例1)

NSString *tmp = @"中日韓" // cString 9bytes
char *buffer = new tmp[9 + 1];
[tmp getCString:buffer maxLength:9+1 encoding:NSUTF8String​Encoding];

示例2)
NSString *tmp = @"中日韓123" // cString 12bytes
char *buffer = new tmp[12 + 1];
[tmp getCString:buffer maxLength:12+1 encoding:NSUTF8String​Encoding];

在上面的示例中,有没有办法知道9和12的长度?

最佳答案

// Add one because this doesn't include the NULL
NSUInteger maxLength = [string maximumLengthOfBytesUsingEncoding:NSUTF8StringEncoding] + 1;

关于ios - 获取以字节为单位的UTF-8字符串长度的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43326289/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com