PHP | json_decode()导致字符问题

时间:2016-06-10 17:36:58

标签: php json unicode encoding

我正在从返回编码字符的API中检索数据。例如,返回的字符串的一部分是\u2605,它是特殊符号(开头)的unicode,请参阅链接: http://www.fileformat.info/info/unicode/char/2605/index.htm

使用php我运行以下代码将数据转换为数组,以便我可以使用它:

$result = file_get_contents($url);
$decoded = json_decode($result, true)

然而,我遇到的问题是符号的unicode代码然后被转换为一些giberish。例如,\u2605已转换为★

其他符号也被转换。

我可以在这做什么?

1 个答案:

答案 0 :(得分:0)

JSON默认使用utf-8字符编码。 这就是为什么你必须在utf-8字符集中输出解码的JSON的原因。

如果您在html中输出,请尝试设置元字符集:

<html>
    <head>
        <meta charset="utf-8" />
    </head>
    <body>
    <?php
        $json = '{"value":"\u2605"}';
        $dec = json_decode($json);
        var_dump($dec);
    ?>
    </body>
</html>