0

我有这样的代码:

 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准备好之后,我试图通过简单的 echo 检查 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() - 最后没有意义,因为我确信我的文本是 UTF8 格式的。

请帮忙,谢谢。

4

1 回答 1

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>

输出这个:

在此处输入图像描述

于 2013-07-19T11:25:20.340 回答