NSJSONSerialization和Unicode,不能很好地协同工作

Sim*_*mon 6 iphone unicode json objective-c

我正在制作一个使用套接字和JSON与nodejs-server对话的应用程序,并且由于iOS 5拥有它自己的NSJSONSerialization,我认为这可能是要遵循的道路.之前,我使用了轻量级的yail库.

无论如何,在迁移到NSJSONSerialization之后我开始遇到编码问题,在更改之前,角色Ö会很好地发送到服务器并返回,仍然存在Ö,但是现在,NSJSONSerialization Ö仍然在unicode char中\U00f6.

阅读文档说默认情况下JSON对象转换为UTF8.当我将响应从服务器转换为一个简单的NSString时,Ö它会像预期的那样显示,但它当然仍然是JSON.

请帮助我解决你的想法,如果我回到yail或使用内置的NSJSONSerialization?

谢谢你,西蒙

fis*_*ear 3

NSLog 在其参数上调用描述,这恰好打印 Unicode 代码而不是字符本身。尝试例如:

\n\n
NSLog(@"%@", [NSDictionary dictionaryWithObject:@"\xc3\xb6" forKey:@"hello"]);\n
Run Code Online (Sandbox Code Playgroud)\n\n

你会看到它打印出来

\n\n
{\n    hello = "\\U00f6";\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,您的 JSON 解码很可能已经完成。

\n