关于从php服务器向iphone发送带有utf8的json的更多详细信息

关于从php服务器向iphone发送带有utf8的json的更多详细信息,php,objective-c,json,Php,Objective C,Json,我们有一个php服务器,它以utf-8编码发送json字符串。 我负责获取数据的iphone应用程序 我想确保我这边的一切都是正确的: //after I downlad the data stream : NSString* content = [[NSString alloc] initWithData:self.m_dataToParse encoding:NSUTF8StringEncoding]; //here the data is shown correctly in the

我们有一个php服务器,它以utf-8编码发送json字符串。 我负责获取数据的iphone应用程序

我想确保我这边的一切都是正确的:

//after I downlad the data stream :

NSString* content = [[NSString alloc] initWithData:self.m_dataToParse encoding:NSUTF8StringEncoding];

//here the data is shown correctly in the console

NSLog(@"%@",content);

SBJsonParser *_parser = [[SBJsonParser alloc]init];

NSDictionary *jsonContentDictionary = [_parser objectWithData:self.m_dataToParse];

//here, when i printer values of array IN array, i see \u454 u\545 \4545 format. any ideas why ?

for(id key in jsonContentDictionary)

{

NSLog(@"key:%@, value:%@,key, [ jsonContentDictionary objectForKey:key]);

}
im使用最新版本的json库:

有问题的是iphone方面?(json解析器?)还是在php服务器中

我想再次澄清一下: 1.在控制台上,在json之前,字符串看起来没有问题 2.执行json后,数组值中的数组格式为
\u545\u453\u545

提前感谢。

您的代码是正确的。 问题的一个可能原因是,即使整个json字符串被正确编码为utf-8(请记住:json文本是一个字符序列,因此必须指定编码),部分或全部文本内容也可能发生错误,您必须向内容提供商(向您发送json的服务器)进行调查(即json消息中包含的单个对象的值)最初是以另一种格式编码的,通常是html编码(iso-8859),特别是在使用特定字符时(例如西里尔文或亚洲文)。现在json框架默认将所有数据解码为utf-8,但如果utf-8字符和iso-8859之间存在编码不匹配(仅保留在示例中)然后,在UTF-8中转换它们的唯一方法是使用\ U格式。这经常发生,尤其是当PHP脚本从HTML页面中提取信息时,通常使用ISO-88 59来编码。并且还考虑到IOS不能将整个ISO-88 59字符集转换成Unicode(例如:Cyric)。 因此,可能的解决办法是: -对服务器端的文本进行内容编码(iso-8859-->utf-8) -或者,如果这是不可能的,则由您来识别\uxxx序列,这些序列通常来自您的内容提供商,并用相应的utf-8字符替换它们