gpt4 book ai didi

objective-c - NSJSON序列化: treating special characters properly

转载 作者:行者123 更新时间:2023-12-03 17:31:44 25 4
gpt4 key购买 nike

我想使用 JSON 文件中的在线数据。它目前正在工作,但是当我使用特殊字符时,它显示“null”。这是我正在使用的代码:

NSString *urlString = [NSString stringWithFormat:@"http://belesios.com/burc/koc2.php"];
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [NSData dataWithContentsOfURL:url];
NSError *error;
NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@"%@", json);
NSString *ciktiText = [[NSString alloc] initWithFormat:@"%@", json];
[kocLabel setText:ciktiText];

例如,如果我的文件包含 ç 或 ü,则返回 null。我需要做什么?

最佳答案

尝试此方法来找出从服务器提取数据时使用的编码:

NSStringEncoding encoding;
NSString *jsonString =[NSString stringWithContentsOfURL:URL usedEncoding:&encoding error:&error];
if (error)
NSLog(@"Error: %@", error);

您应该检查服务器返回的数据的编码。您的代码是正确的,但您应该添加一些检查,如果错误!= nil,则不要执行并显示或记录该错误。

NSString *jsonString = @"{\"abc\":\"ç or ü\"}";
NSDictionary *jsonObj = [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:&error];
NSLog(@"Output: %@", jsonObj);

输出:{ abc = "\U00e7 或\U00fc"; } 如果您使用 Fiddler 或其他一些软件来打印原始响应,那么您的服务器响应应该与编码字符类似。

目前您的数据看起来像 UTF8 编码的字符应该像 \U00e7 = ç enter image description here

关于objective-c - NSJSON序列化: treating special characters properly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15030441/

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