我有一些包含UTF8字符的数据。如果我这样做,我可以在控制台中正确地看到字符:
NSString *responseData = [[NSString alloc]
initWithData:urlData
encoding:NSUTF8StringEncoding];
NSLog(@"Response = %@", responseData);
{"success":1,"row":1,"no":"001","title":"Arendi iOS","subject":"Konu 1","describtion":"Aciklama 1 ıİöÖçÇüÜğĞ","attachment":"Eklenti 1","status":1}
在这一步之后,我这样做:
SBJsonParser *jsonParser = [SBJsonParser new];
NSDictionary *jsonData = (NSDictionary*)[jsonParser objectWithString:responseData error:nil];
NSLog(@"jsonData = %@",jsonData);
输出:
jsonData = {
attachment = "Eklenti 2";
describtion = "Aciklama 2 \U0131\U0130\U00f6\U00d6\U00e7\U00c7\U00fc\U00dc\U011f\U011e";
no = 002;
row = 2;
status = 1;
subject = "Konu 2";
success = 1;
title = "Arendi Android";
}
之后我这样做:
NSString *description = (NSString*)[jsonData objectForKey:@"description"];
但它给了我null
。如何正确打印这些字符?
答案 0 :(得分:1)
不确定这是不是一个简单的拼写错误,但我不禁注意到你在这里有一个名为“description”的字段。
jsonData = { attachment =“Eklenti 2”; descrition =“Aciklama 2 \ U0131 \ U0130 \ U00f6 \ U00d6 \ U00e7 \ U00c7 \ U00fc \ U00dc \ U011f \ U011e”; no = 002; row = 2; status = 1; subject =“Konu 2”; 成功= 1; title =“Arendi Android”; }
但是在最终输出中,您试图获取名为“description”的属性的值。如果key被定义为“describetion”,则无法通过“description”找到它,并且解析器将按预期返回“null”。
希望它有所帮助。