NSData * jsonData 是包含JSON数据的http响应。
NSString* jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"jsonString: %@", jsonString);
我得到了结果:
{ "result": "\u8aaa" }
将数据编码为正确的字符串而不是“ \ uxxxx”之类的Unicode字符串的正确方法是什么?
如果您转换JSON数据
{ "result" : "\u8aaa" }
到NSDictionary(例如使用NSJSONSerialization)并打印字典
NSDictionary
NSJSONSerialization
NSError *error; NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; NSLog(@"%@", jsonDict);
那么你会得到输出
{ result = "\U8aaa"; }
原因是该description方法NSDictionary对所有非ASCII字符使用“ \ Unnnn”转义序列。但这仅是为了在控制台中 显示 ,字典是 正确的 !
description
如果您打印密钥的值
NSLog(@"%@", [jsonDict objectForKey:@"result"]);
那么您将获得预期的输出
說