PHP中json序列化后中文的編碼顯示問題


在接口返回數據中,我們經常會返回json或者xml格式,php的json序列化函數json_encode非常好用,但是默認會把中文編碼為ASCII碼(注意,很多人認為這是亂碼,其實不是),尤其在調試接口時,看到一大串的ASCII碼,一臉懵逼,不知是對是錯:

代碼:

<?php
class A
{
    public $num;
    public $name;
 
    function __construct($_num,$_name)
    {
        $this->num=$_num;
        $this->name=$_name; 
    }
}

$class=new A('A001','張三');

//json_encode序列化 
$json=json_encode($class);
echo $json;

結果:

是不是看着很不爽,

解決辦法也很簡單,網上找的,PHP5.4版本,已經給Json新增了一個選項: JSON_UNESCAPED_UNICODE。加上這個選項后,就不會自動把中文編碼了。

試一下:

class A
{
    public $num;
    public $name;
 
    function __construct($_num,$_name)
    {
        $this->num=$_num;
        $this->name=$_name; 
    }
}

$class=new A('A001','張三');

//json_encode序列化 
$json=json_encode($class,JSON_UNESCAPED_UNICODE);//加上JSON_UNESCAPED_UNICODE
echo $json;

結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM