2013-11-28 112 views
0

我有一些数据包含UTF8字符。如果我下面,我可以能够正确地看到控制台字符:
SBJson - 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。如何正确打印这些字符?

回答

1

不确定它是否是一个简单的错字,但我不禁注意到您在这里有一个名为“description”的字段。

jsonData = { attachment =“Eklenti 2”; describe =“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被定义为“描述”,则不能通过“描述”找到它,解析器将按预期返回“null”。

希望它有帮助。

+0

非常感谢你!我的PHP文件中有一个错字:) –