php json_encode中提示的中文总是返回"u767bu5f55u6210u529fuff01"的解决办法

Posted 礼拜16

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php json_encode中提示的中文总是返回"u767bu5f55u6210u529fuff01"的解决办法相关的知识,希望对你有一定的参考价值。

最近在练习使用 php 写一些简单的接口,但是在返回的消息中,如果有中文,在测试后总是返回:

{"resultCode":200,"message":"\\u767b\\u5f55\\u6210\\u529f\\uff01","data":{"user_id":"29","user_phone":"13918145846","user_name":null,"user_sex":null,"user_password":"123456","user_header":null}}

下面是我写的:

$row = mysql_num_rows($result);
    if($row == 1){
        $array = array();
        while($row = mysql_fetch_array($result)){
            $array["user_id"] = $row["user_id"];
            $array["user_phone"] = $row["user_phone"];
            $array["user_name"] = $row["user_name"];
            $array["user_sex"] = $row["user_sex"];
            $array["user_password"] = $row["user_password"];
            $array["user_header"] = $row["user_header"];
        }
        //把上面的数组以 json 格式返回
        $json = json_encode(array(
            "resultCode"=>200,
            "message"=>"登录成功!",
            "data"=>$array
        ));
        echo($json);
    }else{
        $json = json_encode(array(
            "resultCode"=>500,
            "message"=>"登录失败!"
        ));
        echo($json);
    }

之前在测试时,一直显示这个个?

通过网上查资料并交通,得知 php5.4 Json新增了一个选项: JSON_UNESCAPED_UNICODE, 故名思议, 就是说, Json不要编码Unicode.

我们只要在 json_encode(array(),JSON_UNESCAPED_UNICODE),就可以将代码中的中文正常输出:

$json = json_encode(array(
            "resultCode"=>200,
            "message"=>"登录成功!",
            "data"=>$array
        ),JSON_UNESCAPED_UNICODE);
        echo($json);

看测试效果:

就是这几个单词不好拼!!!!

以上是关于php json_encode中提示的中文总是返回"u767bu5f55u6210u529fuff01"的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

PHP 数组中出现中文乱码,json_encode返回结果为null 或false

json_encode/json_decode - 在 PHP 中返回 stdClass 而不是 Array

php json_encode 返回false

我希望 PHP 中的 json_encode 返回一个 JSON 数组,即使索引不正确

PHP print_r 有效,但 json_encode 返回空 [重复]

PHP json_encode将行作为对象而不是数组返回[重复]