• 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”}

  • 相关阅读:
    最近要看的项目
    Lavarel Route::resource
    架构,性能
    Unity ToLua & LuaFramework_UGUI学习笔记(zz)
    Unity UI 布局
    Introduction to Unity UI
    Unity more efficient find
    unity UI如何开启(显示)或者关闭(隐藏)Panel界面最好?
    Unity Canvas vs Panel
    Unity实现新手引导圆形遮罩
  • 原文地址:https://www.cnblogs.com/xlz307/p/4204036.html
Copyright © 2020-2023  润新知