json_encode() 避免轉換中文


json_encode() 避免轉換中文

我們都知道,json_encode()可以將數據轉換為json格式,而且只針對utf8編碼的數據有效,而且在轉換中文的時候,將中文轉換成不可讀的”\u***”的格式,但是某些情況下是中文是不能轉換成這樣的,比如在微信公眾號創建自定義菜單的時候,傳遞的json數據中,如果有中文,必須是形如這種的:

 1  {  2             "name": "掃碼", 
 3             "sub_button": [  4  {  5                     "type": "scancode_waitmsg", 
 6                     "name": "掃碼帶提示", 
 7                     "key": "rselfmenu_0_0", 
 8                     "sub_button": [ ]  9                 }, 
10  { 11                     "type": "scancode_push", 
12                     "name": "掃碼推事件", 
13                     "key": "rselfmenu_0_1", 
14                     "sub_button": [ ] 15  } 16  ] 17         }, 

那么,遇到這種情況的時候,該怎么辦呢,也不難,json_encode()函數第二個參數在PHP5.4中增加了一個選項,叫做:JSON_UNESCAPED_UNICODE,故名思議, 就是說, Json不要編碼Unicode.

 1 $postArr = array(  2     'button'=>array(  3         array(  4             //一級菜單
 5             'name'=>'百度',
 6             'type'=>'view',
 7             'url'=>'https://www.baidu.com/'
 8         ),
 9  ) 10 ); 11 $postJson = urldecode(json_encode( $postArr,JSON_UNESCAPED_UNICODE)); 12 var_dump($postJson); 13 die;

結果為:

{
  "button":[
    {
      "name":"百度",
      "type":"view",
      "url":"https:\/\/www.baidu.com\/"
    }
  ]
}

參考鏈接:讓Json更懂中文(JSON_UNESCAPED_UNICODE)


免責聲明!

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



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