谷歌chrome ajax调用不会在js控制台中显示阿拉伯字符

时间:2012-05-20 08:21:12

标签: php google-chrome arabic

我在阿拉伯语中使用ajax数据,一切运行良好,我可以将阿拉伯语字符存储到数据库中,我可以从数据库中检索阿拉伯字符并将其打印到screem,一切正常,但我的问题是,当我检查 javascripte concole on google chrome 以检查我无法显示阿拉伯字符的检索数据,但打印为(这只是示例而不是所有数据)

["\u0645\u062f\u064a\u0646\u0629","\u0645\u062f\u064a\u0646\u0629 \u062a\u0627\u0631\u064a\u062e\u064a\u0651\u0629","\u0634\u062e\u0635\u064a\u0651\]

我的意思是这样的

enter image description here

1 个答案:

答案 0 :(得分:3)

使用JSON时,字符串为UTF-8,特殊字符编码为\u,后跟4个十六进制字符。

在您的情况下,如果您尝试解码该字符串 - 例如,使用数组的第一项:

>>> str = "\u0645\u062f\u064a\u0646\u0629";
"مدينة"

我不读阿拉伯语,但对我来说这看起来像阿拉伯语: - )

即使JSON没有看起来很好,重要的不是:重要的是,一旦JSON被解码,你就会得到原始数据;而且,在这里,你似乎会这样做。


要在浏览器的控制台中获取原始的,已解码的字符串(出于调试目的,我猜),您应该能够使用在应用程序中使用的相同JS库(如果有的话) ),或JSON.parse()函数(我刚刚在Firefox的控制台中对此进行了测试)

>>> JSON.parse('"\u0645\u062f\u064a\u0646\u0629"');
"مدينة"

当然,您必须编写一些代码才能将解码后的值实际输出到浏览器的控制台(无论是“手动”还是从服务器获取JSON);但由于浏览器的控制台它是一个调试工具,似乎没问题。
默认情况下,控制台作为调试工具输出从服务器获取的原始JSON字符串 - 并且,对于JSON,特殊字符被编码,你无能为力(除了解码JSON字符串并自行显示(如果需要)


如果您希望每次从服务器获得结果时将解码后的字符串输出到控制台,则每次从服务器获得结果时都必须调用JSON.parse();然后输出它,可能使用console.log()

不要忘记在分发应用程序/将其上传到生产服务器之前删除该调试代码。