前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP将数组转为json出现的中文乱码的问题

PHP将数组转为json出现的中文乱码的问题

原创
作者头像
八神太一
修改2021-05-06 10:27:05
2.2K0
修改2021-05-06 10:27:05
举报
文章被收录于专栏:androud
  1. 将GBK编码的含有中文数组转为json格式,先将每个值进行urlencode,然后json_encode,最后urldecode即可。
代码语言:javascript
复制
// 示例代码
 $testJSON=array('title' => '标题', 'url' => 'meitu.jpg');
    foreach ( $testJSON as $key => $value ) 
    {   
        $testJSON[$key] = urlencode ( $value );   
    }   
  $ret = urldecode ( json_encode ( $testJSON ) );  
   print_r($ret );

2.将json转为数组

代码语言:javascript
复制

// 将GBK转为UTF-8后,再json_decode为数组json_decode($new_url, true),后边带true参数表示转为数组,否则默认为对象形式的
  $new_url = iconv("GBK","UTF-8//IGNORE",  $ret );
  print_r(json_decode($new_url, true));

3.3.终极处理方法,对数组进行编码转换

   用途:中文处理,在返回json时对原来的gbk编码进行utf-8转码

代码语言:javascript
复制
<?php
$arr = array(
    array(
         'name' => "周星驰",
         'age' => "23",
         'info' => array(
             'address' => '旺角',
          ),
      ),
     array(
        'name' => "发哥",
        "age" => 25
       ),
);
 
$in_charset   = "gbk";
$out_charset = "utf-8";
function array_iconv($in_charset,$out_charset,$arr){
           return eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';'));
}  
 
 
 
 $res = array_iconv($in_charset, $out_charset, $arr);
 $res = json_encode($res);
 print_r($res);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档