如何为 PHP 中 UTF-8 字符从 MySQL 数据库返回的 JSON 数据创建服装布局


how to create a costume layout for json data returned from mysql database for UTF-8 characters in php

我正在尝试使用 php 在 restful Web 服务中创建 mysql 数据的 json 表示。 我返回的 JSON 应该看起来像这样:

"worktypes" :
[
    {
        "id" : "1",
        "name" : "نوع 1",
        "isactive" : "true"
    },
    {
        "id" : "2",
        "name" : "نوع 2",
        "isactive" : "false"
    }
]

我的选择之一是遍历我的结果记录并手动echo每一行。它一直在工作,直到我达到上面显示的utf8字符(例如"نوع 1"),而不是以类似'u00d9'u0086'u00d9'u0088'u00d8'u00b9之类的内容结束,我得到了像ÃÂÃÂù çÃÂÃÂ这样的不可读符号。

如果我能以某种方式使用json_encode来创建此布局,它将自动解决此问题;但是我不知道如何在 php 中创建这样的结构,它的json_encoded字符串代表我想要的布局。

我的另一个选择是自己以某种方式对这些字符进行编码。但我也不知道如何做到这一点。

谁能帮我解决问题?

更新:当我得到不寻常的字符时,我在网络服务中使用一个简单的echo,例如:

$result = array("1" => "نوع 1")
echo $result;
//results in 'ÙÙع 1' when called using webservice

你给出的等效的PHP数组是:

$x = array(
    "worktypes" => array( 
        array(
            "id" => "1",
            "name" => "نوع 1",
            "isactive" => "true"
        ),
        array(
            "id" => "2",
            "name" => "نوع 2",
            "isactive" => "false"
        )
    )
);

然后,您可以使用json_encode .

请注意,您可能仍会看到转义字符,但浏览器在解析 JSON 时应该能够处理取消转义字符。