0

将包含 NSDictionaries 的 NSArray 转换为 JSON 字符串时,我得到了一些奇怪的字符。我尝试使用 SBJson 和 NSJSONSerialization 得到相同的结果。

NSDictionary 填充了地址簿的内容、联系人姓名、电子邮件和电话号码,并且大部分是希伯来语。

字符如下所示:

\327\237

我找不到有关此的任何信息,请帮助任何人?

提前致谢!

编辑*

这是 JSON 的一个片段:

[
    {"fname":"סתם טקסט"},
    {"fname":"סתם טקסט"},
    {"fname":"נ\327\231ר"}
]

它应该是: [ {"fname":"סתם טקסט"}, {"fname":"סתם טקסט"}, {"fname":"ניר"} ]

我正在使用以下代码获取 JSON:

    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:ContactsArray options:NSJSONReadingMutableLeaves error:&err];
    NSLog(@"JSON: %@", [NSString stringWithUTF8String:[jsonData bytes]]);
4

1 回答 1

2

这些字符是八进制转义码。我更喜欢用十六进制看东西。\327并且\2370xD70x9F是十六进制的。

我抬头看了看U+00D7U+009Funicode字符)。它们是乘法符号和应用程序命令。在这种情况下这没有意义,因此直接转换不是要走的路。

接下来,我想到了 UTF-8编码。D7 9F 解码U+05DF. 这是希伯来文最后的修女。在这种情况下,这是有道理的。

所以,我猜你在 UTF-8 字符中看到的数据是不被理解和八进制转义的。JSON 不支持八进制转义,所以我猜它是NSLog()或您用来打印正在进行转义的 JSON 的任何东西。

于 2013-09-16T10:22:20.527 回答