gpt4 book ai didi

objective-c - 将 NSString 转换为 NSData 会强制尾随字节吗?

转载 作者:太空狗 更新时间:2023-10-30 03:15:35 25 4
gpt4 key购买 nike

这是对这个错误答案的回应: https://stackoverflow.com/a/7894952/192819

是否像这样转换 NSString:

NSString *str = @"teststring";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

强制尾随\0 字节,这意味着

-[NSJSONSerialization:JSONObjectWithData:] 

除非您删除它,否则其他人将失败。

最佳答案

不,它没有。看这个例子:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"v1", @"k1",
@"v2", @"k2",
nil];
NSLog(@"dict=%@", dict);

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:nil];

NSString *jsonAsString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

NSData *jsonDataFromString = [jsonAsString dataUsingEncoding:NSUTF8StringEncoding];

// DO NOT DO THIS:
// jsonDataFromString = [jsonDataFromString subdataWithRange:NSMakeRange(0, [jsonDataFromString length] - 1)];

NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:jsonDataFromString options:0 error:nil];
NSLog(@"jsonObject=%@", jsonObject);

试一试,然后取消注释“DO NOT DO THIS”这一行。你会看到没有问题。

关于objective-c - 将 NSString 转换为 NSData 会强制尾随字节吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14087094/

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