json_decode()返回不可读的文本

时间:2013-07-19 10:53:00

标签: php json encoding

我有这样的代码:

 for ($j = 0; $j < mysql_num_rows($subcategoriesData); $j++)
    {
      $subcategoriesStrResult = mysql_fetch_array($subcategoriesData);
      //echo $subcategoriesStrResult['title']."<br>";
      $itemFeatures = array( $subcategoriesStrResult['title'] => $subcategoriesStrResult['path']);
      array_push($arrayDataSubcategoryItems, $itemFeatures);
    };

    array_push($mainArrayForJSON, $item = array(
                                               'parent_id' => $subcategoriesStrResult['parent'],
                                               'level'     => $subcategoriesStrResult['level'],
                                               'items'     => $arrayDataSubcategoryItems
    ));

$mainArrayForJSON准备就绪后,我试图通过简单的回声检查json代码

echo  json_encode($mainArrayForJSON);

同时,为了确保我得到了我需要的东西,我也在echo检查我的字符串的单个值(此字符串现已注释) - 它工作正常,我在Chrome上看到了良好的可读性文本(在数据库中,此文本存储在utf8中,当然)。

但最后调用echo来检查准备好的JSON引导我进入下一个输出:

[{"parent_id":"8-590","level":"3","items":[{"\u041c\u0435\u0442\u0430\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043b\u043e\u0442\u043e\u043a BAKS (\u041f\u043e\u043b\u044c\u0448\u0430)":"8-590-1404"},{"\u041c\u0435\u0442\u0430\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043b\u043e\u0442\u043e\u043a INPUK 

所以,我不知道如何修复它 - 我试图硬编码UTF编码“SET NAMES ...”并调用header(),而iconv() - last没有意义因为我是确定我的文字是UTF8。

请帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

如果您想在网页上输出文字,请使用javascript。你会得到你的俄罗斯人物。例如:

<script type="text/javascript">
    var a = "\u041c\u0435\u0442\u0430\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043b\u043e\u0442\u043e\u043a BAKS (\u041f\u043e\u043b\u044c\u0448\u0430";
    alert(a);
</script>

输出:

enter image description here