gpt4 book ai didi

ios - NSJSONSerializer 如何确定给定数据的编码?

转载 作者:可可西里 更新时间:2023-11-01 01:06:33 28 4
gpt4 key购买 nike

我正在使用 NSJSONSerializer 来解析一些 json 格式的数据。数据包含一些“ü”和“ö”等。我发现它确实返回 nil,如果没有事先使用 NSASCIIStringEncoding 将 NSData 转换为 NSString 并将其重新转换回 NSData,以便将 'ü' 转换为 u 等等。数据的原始格式是 ISO-8859-1。我怎么可能建议 json 解析器使用这种编码?

最佳答案

根据 RFC 7159 :

8.1. Character Encoding

JSON text SHALL be encoded in UTF-8, UTF-16, or UTF-32.

因此,如果您的数据以 ISO-8859-1 编码,则它不是有效的 JSON

使用 NSString 将其转换为定义的可接受的 JSON 格式之一:

NSString *string = [[NSString alloc] initWithData:dat encoding:NSISOLatin1StringEncoding];
NSData *utf8Data = [string dataUsingEncoding:NSUTF8StringEncoding];

// ... give utf8Data to NSJSONSerializer

关于ios - NSJSONSerializer 如何确定给定数据的编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27005825/

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