djdqlt

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

下面的PHP代码可以解决以下问题:
1.json_encode UTF8码中文后的字符串不可阅读
2.json_encode 多级数组中文乱码问题
3.json_encode 数组中包含换行时错误问题
4.json_encode 数组中键为中文的问题

function _encode($arr)
{
  $na = array();
  foreach ( $arr as $k => $value ) {  
    $na[_urlencode($k)] = _urlencode ($value);  
  }
  return addcslashes(urldecode(json_encode($na)),"\\r\\n");
}

function _urlencode($elem)
{
  if(is_array($elem)){
    foreach($elem as $k=>$v){
      $na[_urlencode($k)] = _urlencode($v);
    }
    return $na;
  }
  return urlencode($elem);
}

测试

$a=array('a'=>'中国','b'=>array('d'=>'印度'));
$e=array('中国'=>'1','b'=>array('d'=>'3'));
echo json_encode($a);
echo "<br/>";
echo _encode($a);
echo "<br/>";
echo json_encode($e);
echo "<br/>";
echo _encode($e);

输出结果

{"a":null,"b":{"d":null}}
{"a":"中国","b":{"d":"印度"}}
{null:"1","b":{"d":"3"}}
{"中国":"1","b":{"d":"3"}}

 

posted on 2014-04-25 14:07  无心之源  阅读(327)  评论(0)    收藏  举报