在接口返回數據中,我們經常會返回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;
結果: