Php JSON解码中的阿拉伯语字符

Php JSON解码中的阿拉伯语字符,php,json,Php,Json,由于此代码,输出为:“\u0628\u0633\u0645\u0627\u0644\u0644\u0647”,而它应该类似于“بسمه”。阿拉伯语字符在JSON编码时进行编码,而在Youtube API上则不是这样: 你可以在Youtube上看到阿拉伯字符显示正确。我可能犯了什么错 提示:我正在开发一个API

由于此代码,输出为:
“\u0628\u0633\u0645\u0627\u0644\u0644\u0647”
,而它应该类似于“بسمه”。阿拉伯语字符在JSON编码时进行编码,而在Youtube API上则不是这样:

你可以在Youtube上看到阿拉伯字符显示正确。我可能犯了什么错

提示:我正在开发一个API<这个示例只是为了澄清。

“\u0628\u0633\u0645\u0627\u0644\u0644\u0647”
在JSON中是等效的

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

您可以通过指定其他选项(前提是您使用的是PHP5.4或更高版本)


这是UTF-8字符串的正确JSON编码版本。不需要更改它,它表示正确的字符串。JSON中的字符可以通过这种方式转义

如果需要,JSON可以直接表示UTF-8字符。自PHP 5.4以来,您可以选择设置
JSON\u UNESCAPED\u UNICODE
标志来生成原始UTF-8字符串:

json_encode('بسم الله', JSON_UNESCAPED_UNICODE);

但这只是首选项,不是必需的。

两种格式都是有效且等效的字符串:

如果您喜欢未编码版本,只需添加
JSON\u UNESCAPED\u UNICODE
标志:

char
    any-Unicode-character-
        except-"-or-\-or-
        control-character
    \"
    \\
    \/
    \b
    \f
    \n
    \r
    \t
    \u four-hex-digits

正如前面提到的,这并不重要,因为两个字符串都是等价的。
但是,您应该做的是确保在将编码字符串发送到输出之前对其进行解码

<?php

$test = json_encode('بسم الله', JSON_UNESCAPED_UNICODE);
echo $test;
或者因为JSON包含的内容很可能不止一个字符串:

echo json_decode($test);

不使用json_编码就可以显示阿拉伯字符,那么为什么要尝试对这些字符进行json_编码呢?使用谷歌输入工具处理阿拉伯文本我正在开发一个API,这就是为什么我尝试使用json_编码。输出是正确的。这是一个UTF-8编码的字符串。如果您正在使用任何与字符串相关的函数,请尝试使用多字节等效函数。。学阿拉伯语给我带来了很多麻烦。。我花了好几天才解决这个问题。我的主机还不支持PHP5.4!无论如何谢谢你:)太棒了!成功了。
<?php

$test = json_encode('بسم الله', JSON_UNESCAPED_UNICODE);
echo $test;
echo json_decode($test);
$obj['arabic'] = 'بسم الله';
$obj['latin'] = 'abcdef';
$obj['integer'] = 12345;

$test = json_encode($obj);

$testobject = json_decode($test);
echo $testobject['arabic'];