Welcome to 16892 Developer Community-Open, Learning,Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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

{"resultCode":200,"message":"u767bu5f55u6210u529fuff01","data":{"user_id":"29","user_phone":"13918145846","user_name":null,"user_sex":null,"user_password":"123456","user_header":null}}
"message":"u767bu5f55u6210u529fuff01",
其实这个地方返回的是类似“注册失败”才正确?
请问我该怎么解决?谢谢!

下面是我写的:

$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);
    }

我在网上查到有类似解决办法:

 $json = json_encode($str);  
        return preg_replace("#\u([0-9a-f]+)#ie","iconv('UCS-2','UTF-8', pack('H4', '\1'))",$json); 

但是我觉得这些代码有些看不懂,有没有更好的办法解决呢?据说上面的方法对于低版本的 php 还是没有效果的。有没有什么办法可以通用的呢?

非常感谢!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
496 views
Welcome To Ask or Share your Answers For Others

1 Answer

echo json_encode(array(
            "resultCode"=>500,
            "message"=>"登录失败!"
        ), JSON_UNESCAPED_UNICODE);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to 16892 Developer Community-Open, Learning and Share

548k questions

547k answers

4 comments

56.5k users

...