zoukankan      html  css  js  c++  java
  • 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)

    多学、 多记、 多练、
  • 相关阅读:
    vue-cli构建项目 npm run build后应该怎么运行在本地查看效果
    解析JSON数组
    Lambda
    keytool不是内部或外部命令
    XML布局
    HTML5本地存储IndexedDB基础使用
    Vue 2.0基础
    cs231n__3. LostFunction
    cs231n__2. K-nearest Neighbors
    week_Last
  • 原文地址:https://www.cnblogs.com/cyfblogs/p/9767732.html
Copyright © 2011-2022 走看看