shi*_*ami 7 encoding json nsstring nsdata ios
NSData*jsonData是包含JSON数据的http响应.
NSString* jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"jsonString: %@", jsonString);
Run Code Online (Sandbox Code Playgroud)
我得到了结果:
{ "result": "\u8aaa" }
Run Code Online (Sandbox Code Playgroud)
将数据编码为正确字符串的正确方法是什么,而不是像"\ uxxxx"这样的unicode字符串?
Mar*_*n R 19
如果转换JSON数据
{ "result" : "\u8aaa" }
Run Code Online (Sandbox Code Playgroud)
到NSDictionary(例如使用NSJSONSerialization)并打印字典
NSError *error;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
NSLog(@"%@", jsonDict);
Run Code Online (Sandbox Code Playgroud)
然后你会得到输出
{
result = "\U8aaa";
}
Run Code Online (Sandbox Code Playgroud)
原因是对所有非ASCII字符使用"\ Unnnn"转义序列的description方法NSDictionary.但那只是在控制台中显示,字典是正确的!
如果您打印键的值
NSLog(@"%@", [jsonDict objectForKey:@"result"]);
Run Code Online (Sandbox Code Playgroud)
那么你将得到预期的输出
?
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18940 次 |
| 最近记录: |