NSDictionary发布Unicode字符

时间:2014-11-12 11:13:50

标签: ios objective-c unicode nsdictionary

我需要将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 = "È ê ü à ã";
}

1 个答案:

答案 0 :(得分:1)

@"È ê ü à ã"@"\U00c8 \U00ea \U00fc \U00e0 \U00e3"的转换不是 NSDictionary的转换,所以我认为这是由JSON编码器完成的。

我希望JSON解码器能够将它们恢复原状,所以答案是使用一个好的JSON解码器(好的"好的"我的意思是"一个有效的" )。

引用this question的答案:

<强> 2.5。字符串

字符串的表示类似于C系列编程语言中使用的约定。字符串以引号开头和结尾。除了必须转义的字符外,所有Unicode字符都可以放在引号内:引号,反向固定和控制字符(U + 0000到U + 001F)。

任何角色都可能被转义。