我需要将Unicode字符发布到数据库。我正在使用的数据库接收NSDictionary并将其存储为JSONObject。
字典创建如下:
NSMutableDictionary *messageDictionary = [[NSMutableDictionary alloc] init ];
[messageDictionary setObject:@"message" forKey:@"type"];
[messageDictionary setObject:@"È ê ü à ã" forKey:@"message"];
然后数据库将结果存储为:
{
type = message;
message = \"\\U00c8 \\U00ea \\U00fc \\U00e0 \\U00e3\";
}
如果我只发布数据库存储的字典之外的字符串:
{
message = È ê ü à ã
}
如何阻止NSDictionary编辑这些字符并以与输入文本视图相同的方式存储它们。将Emoji输入文本视图并发送时也是如此。我需要存储的响应是:
{
type = messages;
message = "È ê ü à ã";
}
答案 0 :(得分:1)
从@"È ê ü à ã"
到@"\U00c8 \U00ea \U00fc \U00e0 \U00e3"
的转换不是 NSDictionary
的转换,所以我认为这是由JSON编码器完成的。
我希望JSON解码器能够将它们恢复原状,所以答案是使用一个好的JSON解码器(好的"好的"我的意思是"一个有效的" )。
引用this question的答案:
<强> 2.5。字符串强>
字符串的表示类似于C系列编程语言中使用的约定。字符串以引号开头和结尾。除了必须转义的字符外,所有Unicode字符都可以放在引号内:引号,反向固定和控制字符(U + 0000到U + 001F)。
任何角色都可能被转义。