This question already has an answer here:
Reference: Why are my “special” Unicode characters encoded weird using json_encode?
(1个答案)
4年前关闭。
作为此代码的结果,输出为:
http://gdata.youtube.com/feeds/api/videos/RqMxTnTZeNE?v=2&alt=json
您可以在YouTube上看到阿拉伯字符正确显示。我可能会犯什么错误?
提示:我正在使用API,该示例仅是为了澄清。
(1个答案)
4年前关闭。
$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,该示例仅是为了澄清。
最佳答案
"\u0628\u0633\u0645 \u0627\u0644\u0644\u0647"
和"بسم الله"
在JSON中等效。
PHP仅默认使用Unicode转义,而不是多字节字符的文字。
您可以使用JSON_UNESCAPED_UNICODE进行其他指定(前提是您使用的是PHP 5.4或更高版本)。
json_encode('بسم الله', JSON_UNESCAPED_UNICODE);
09-25 21:03