我正在开发一个使用套接字和JSON与nodejs服务器通信的应用程序,并且由于iOS 5具有它自己的NSJSONSerialization,所以我认为这可能是遵循的方法。以前,我使用了轻量级的yail库。
无论如何,在迁移到NSJSONSerialization之后,我开始遇到编码问题,在更改之前,字符Ö
会很好地发送到服务器并返回到服务器,仍然是Ö
,但是现在,NSJSONSerialization仍然将Ö
保留在unicode char中,即\U00f6
。
阅读文档说默认情况下JSON对象会转换为UTF8。当我将来自服务器的响应转换为简单的NSString时,Ö
会按预期显示,但是它当然仍然是JSON。
请帮我解决您的想法,因此,我应该返回yail还是使用内置的NSJSONSerialization?
谢谢,
西蒙
最佳答案
NSLog在其参数上调用描述,该描述恰好输出Unicode代码而不是字符本身。尝试例如:
NSLog(@"%@", [NSDictionary dictionaryWithObject:@"ö" forKey:@"hello"]);
你会看到它打印
{
hello = "\U00f6";
}
因此,很可能您的JSON解码已经完成。
关于iphone - NSJSONSerialization和Unicode不能很好地配合使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8143026/