json_encode直接中文字符打印

 $arr = array(    
    'status' => true,    
    'errMsg' => '',    
    'member' =>array(    
        array(    
            'name' => '李逍遙',    
            'gender' => '男'    
        ),    
        array(    
            'name' => '趙靈兒',    
            'gender' => '女'    
        )    
    )    
); 
echo json_encode($arr);

上面打印結果是:

{"status":true,"errMsg":"","member":[{"name":"\u674e\u900d\u9065","gender":"\u7537"},{"name":"\u8d75\u7075\u513f","gender":"\u5973"}]}

上面結果如果是中文就顯示unicode編碼,例如\u975a\u4ed4,看起了不舒服

php5.4 以後,json_encode增加了JSON_UNESCAPED_UNICODE , JSON_PRETTY_PRINT 等幾個常量參數。使顯示中文與格式化更方便

echo json_encode($arr,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);使用這個打印結果是:
{ "status": true, "errMsg": "", "member": [ { "name": "李逍遙", "gender": "男" }, { "name": "趙靈兒", "gender": "女" } ] }

中文就是中文看起了就舒服多了
如果是echo json_encode($arr,JSON_UNESCAPED_UNICODE);結果是:
{"status":true,"errMsg":"","member":[{"name":"李逍遙","gender":"男"},{"name":"趙靈兒","gender":"女"}]}
結果和echo json_encode($arr,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);是一樣的的,區別就是沒有json格式化

JSON_UNESCAPED_UNICODE是中文不轉碼,JSON_PRETTY_PRINT是json串格式化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章