• json_encode注意


    PHP5.2或以上的版本把json_encode作为内置函数来用,但只支持utf-8编码的字符,否则中文就会出现乱码或者空值。解决办法如下:

    1.保证在使用JSON处理的时候字符是以UTF8编码的。具体我们可以把数据库编码和页面编码都改为UTF8。如果喜欢用gbk编码的话,可以在进行JSON处理前,把字符转为UTF8形式。在PHP中有如下方法:
      <?php   
         $data="JSON中文";   
         $newData=iconv("GB2312","UTF-8//IGNORE",$data);   
         echo $newData;   

     ?>
         //ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符都不会被保存。 

    2.页面编码为UTF-8或者已经把字符转为UTF-8)使用json_encode将PHP中的array数组转为JSON字符串

       <?php   
            $testJSON=array('name'=>'中文字符串','value'=>'test');   
           echo json_encode($testJSON);   
       ?>    

        查看输出结果为:
       {“name”:”u4e2du6587u5b57u7b26u4e32″,”value”:”test”}
       可见即使用UTF8编码的字符,使用json_encode也出现了中文乱码。

       解决办法:

       在使用json_encode之前把字符用函数urlencode()处理一下,然后再json_encode,输出结果的时候在用函数urldecode()转回来。具体如下:

       <?php   
              $testJSON=array('name'=>'中文字符串','value'=>'test');   
             //echo json_encode($testJSON);   
             foreach ( $testJSON as $key => $value ) {   
                 $testJSON[$key] = urlencode ( $value );   
              }   
           echo urldecode ( json_encode ( $testJSON ) );   
      ?>   

      此时输出结果为: {“name”:”中文字符串”,”value”:”test”}

  • 相关阅读:
    python+selenium之页面元素截图
    selenium八大定位
    http概述之URL与资源
    数组中只出现一次的数字
    数字在排序数组中出现的次数
    把数组排成最小的数
    数组中出现次数超过一半的数字
    调整数组顺序使得奇数位于偶数的前面
    旋转数组的最小值
    二维数组的查找
  • 原文地址:https://www.cnblogs.com/xlz307/p/4204036.html
Copyright © 2020-2023  润新知