Iphone NSJSONSerialization JSONObjectWithData:选项:错误:编码问题

Iphone NSJSONSerialization JSONObjectWithData:选项:错误:编码问题,iphone,ios,json,nsjsonserialization,Iphone,Ios,Json,Nsjsonserialization,在我的代码中,我下载了一个用UTF8编码的JSON数据,这是使用NSJSONSerialization的理想选择,但是当我得到解析的对象时,它充满了编码问题,例如: “Jo\U00e3o e Maria-Ca\u00e7崇拜布鲁克斯” (它必须是“圣母玛利亚-卡萨德布鲁克斯崇拜者”(Joãe Maria-Caçadores de Bruxas)。尝试用ASCII、Unicode和其他代码重新编码,但未成功: NSData *downloadedData = [NSURLConnection se

在我的代码中,我下载了一个用
UTF8
编码的
JSON
数据,这是使用
NSJSONSerialization
的理想选择,但是当我得到解析的对象时,它充满了编码问题,例如:

“Jo\U00e3o e Maria-Ca\u00e7崇拜布鲁克斯”

(它必须是“圣母玛利亚-卡萨德布鲁克斯崇拜者”(Joãe Maria-Caçadores de Bruxas)。尝试用ASCII、Unicode和其他代码重新编码,但未成功:

NSData *downloadedData = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:requestURL cachePolicy:cachePolicy timeoutInterval:timeoutInterval] returningResponse:NULL error:&error];
NSDictionary *serializedDictionary = [NSJSONSerialization JSONObjectWithData:downloadedData options:NSJSONReadingAllowFragments error:&error];
编辑:使用此选项打印时,正确显示:

NSLog(@"Test: %@", [[NSString alloc] initWithData:downloadedData encoding:NSUTF8StringEncoding]);

这些是UTF8编码的字符。格式正确,请将它们放在
UILabel
或其他东西上,它们将按您的预期显示。

如果您需要抛光文本本身,请尝试

NSString * s = [NSString stringWithUTF8String:[<your_string> UTF8String]];
NSString*s=[nsstringwithutf8string:[UTF8String]];

这样就没有问题了?您如何检查已解析的数据?如果您使用的是NSLog,它可能会打印出转义字符,例如\U00e3 forã。谢谢,我在NSLog中测试它,因为我仍然没有一个UI可以使用,但在一个UILabel中它可以工作。