小编use*_*109的帖子

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

我想从 NSString 获取 cString。
所以我们使用了 c?String?Using?Encoding:? 方法。
但是,返回值c?String?Using?Encoding:? 方法不保证。
(Apple 的文档:返回的 C 字符串保证仅在接收器被释放之前有效。)

所以 Apple 推荐 get?CString:?max?Length:?encoding: 方法。
我想将确切的长度传递给 maxLength。

示例 1)

NSString *tmp = @"???" // cString 9bytes
char *buffer = new tmp[9 + 1];
[tmp getCString:buffer maxLength:9+1 encoding:NSUTF8String?Encoding];
Run Code Online (Sandbox Code Playgroud)

例 2)

NSString *tmp = @"???123" // cString 12bytes
char *buffer = new tmp[12 + 1];
[tmp getCString:buffer maxLength:12+1 encoding:NSUTF8String?Encoding];
Run Code Online (Sandbox Code Playgroud)

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

objective-c utf-8 ios

1
推荐指数
1
解决办法
991
查看次数

标签 统计

ios ×1

objective-c ×1

utf-8 ×1