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_兔子
  • 相关阅读:
    MongoDB性能分析
    MongoDB复制
    redis键管理
    MySQL集群架构-DRBD+headbeat +lvs+keepalived
    Spark-Core RDD转换算子-双Value型交互
    Spark-Core RDD转换算子-Value型
    Spark-Core RDD的创建
    Spark-Core RDD概述
    数仓理论
    flume 进阶
  • 原文地址:https://www.cnblogs.com/huidaoli/p/3894555.html
Copyright © 2011-2022 走看看