我正在开发一个使用套接字和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/

10-12 22:13