一尘不染

JSON解码中的阿拉伯字符

json

$test = json_encode(‘بسم الله’);
echo $test;

作为此代码的结果,输出为:"\u0628\u0633\u0645 \u0627\u0644\u0644\u0647"虽然它应该类似于“بسمالله”。阿拉伯字符是通过JSON编码而编码的,而在Youtube
API上则不是这样:http
:
//gdata.youtube.com/feeds/api/videos/RqMxTnTZeNE?v=2&alt=json

您可以在YouTube上看到阿拉伯字符正确显示。我可能会犯什么错误?

提示:我正在使用API​​,该示例仅是为了澄清。


阅读 433

收藏
2020-07-27

共1个答案

一尘不染

"\u0628\u0633\u0645 \u0627\u0644\u0644\u0647"并且"بسم الله"在JSON中等效。

PHP仅默认使用Unicode转义,而不是多字节字符的文字。

您可以使用JSON_UNESCAPED_UNICODE进行其他指定(前提是您使用的是PHP
5.4或更高版本)。

json_encode('بسم الله', JSON_UNESCAPED_UNICODE);
2020-07-27