zoukankan      html  css  js  c++  java
  • PHP json_encode函数中需要注意的地方

    在php中使用 json_encode() 内置函数可以使用得php中的数据更好的与其它语言传递与使用。

    这个函数的功能是将数组转换成json数据存储格式:

    1 <?php
    2     $arr=array('name'=>'Balla_兔子','age'=>22);
    3     echo json_encode($arr);
    4 ?>

    输出结果:

    1 {"name":"","age":22}

    json_encode函数中中文被编码成null了,查了下资料,很简单,为了与前端紧密结合,json只支持utf-8编码。

    我们可以用iconv函数转换下编码:

    1 string iconv ( string $in_charset , string $out_charset , string $str )
    2 Performs a character set conversion on the string str from in_charset to out_charset.//从in_charset编码转为out_charset,str为转换内容
    1 <?php
    2     $arr=array('name'=>iconv('gbk', 'utf-8', 'Balla_兔子'),'age'=>22);
    3     echo json_encode($arr);
    4 ?>

    输出结果:

    1 {"name":"Balla_u934fu65bfu74d9","age":22}

    在数组里所有中文在json_encode之后都不见了或者出现u934fu65bf等。

    解决方法是用urlencode()函数处理下,在json_encode之前,把所有数组内所有内容都用urlencode()处理,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来。

    1  string urlencode ( string $str ) //UrlEncode:将字符串以URL编码返回 返回值:字符串
    复制代码
     1 <?php
     2     
     3     $arr=array('name'=>urlencode('Balla_兔子'),'age'=>22);
     4     
     5     $json=json_encode($arr);
     6 
     7     $result=json_decode($json,true);//把json解码并转为数组
     8     
     9     echo urldecode($result['name']);
    10 
    11 ?>
    复制代码

    输出结果:

    1 Balla_兔子
  • 相关阅读:
    HTML元素解释
    Java命名规范
    HDU 1058 Humble Numbers(DP,数)
    HDU 2845 Beans(DP,最大不连续和)
    HDU 2830 Matrix Swapping II (DP,最大全1矩阵)
    HDU 2870 Largest Submatrix(DP)
    HDU 1421 搬寝室(DP)
    HDU 2844 Coins (组合背包)
    HDU 2577 How to Type(模拟)
    HDU 2159 FATE(二维完全背包)
  • 原文地址:https://www.cnblogs.com/huidaoli/p/3894555.html
Copyright © 2011-2022 走看看