Dru*_*erB 4 null byte objective-c char nsstring
我正在尝试NSString从unsigned char数组(ASCII编码)初始化一个简单的.问题是,\0数组中有一些s作为分隔符.如果我使用
[[NSString alloc] initWithBytes:bytes length:length encoding:NSASCIIEncoding];
Run Code Online (Sandbox Code Playgroud)
我只得到第一个部分\0.有没有办法获得length参数中指定的字节数量,即使有\0s?
整个数组进入字符串,只是当你尝试显示它时,只显示直到初始的部分\0.
以下是用于说明这一点的代码:
unsigned char data[] = "hello\0world";
NSString *str = [[NSString alloc] initWithBytes:data length:sizeof(data) encoding:NSASCIIStringEncoding];
NSLog(@"%@", str);
NSLog(@"%@", [str substringFromIndex:6]);
Run Code Online (Sandbox Code Playgroud)
这会产生以下日志输出:
hello
world
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3854 次 |
| 最近记录: |