php json多层乱码解决
来源:互联网 发布:淘宝上好看的女鞋店铺 编辑:程序博客网 时间:2024/05/21 14:10
http://blog.csdn.NET/fdipzone/article/details/28766357
php5.4 以后,json_encode增加了JSON_UNESCAPED_UNICODE , JSON_PRETTY_PRINT 等几个常量参数。使显示中文与格式化更方便。
多层中文乱码解决:
<?PHP
调用:
header('content-type:application/json;charset=utf8');
$arr =array(
'status'=> true,
'errMsg'=> '',
'member'=>array(
array(
'name'=> '李逍遥',
'gender'=> '男'
),
array(
'name'=> '赵灵儿',
'gender'=> '女'
)
)
);
echo jsonFormat($arr);
/** Json数据格式化
* @param Mixed $data 数据
* @param String $indent 缩进字符,默认4个空格
* @return JSON
*/
function jsonFormat($data, $indent=null){
//对数组中每个元素递归进行urlencode操作,保护中文字符
array_walk_recursive($data,'jsonFormatProtect');
//json encode
$data= json_encode($data);
//将urlencode的内容进行urldecode
$data= urldecode($data);
//缩进处理
$ret= '';
$pos= 0;
$length= strlen($data);
$indent= isset($indent)?$indent :' ';
$newline= "\n";
$prevchar= '';
$outofquotes= true;
for($i=0; $i<=$length; $i++){
$char= substr($data, $i, 1);
if($char=='"' && $prevchar!='\\'){
$outofquotes= !$outofquotes;
}elseif(($char=='}' || $char==']') && $outofquotes){
$ret.= $newline;
$pos--;
for($j=0; $j<$pos; $j++){
$ret.= $indent;
}
}
$ret.= $char;
if(($char==',' || $char=='{' || $char=='[') && $outofquotes){
$ret.= $newline;
if($char=='{' || $char=='['){
$pos++;
}
for($j=0; $j<$pos; $j++){
$ret.= $indent;
}
}
$prevchar= $char;
}
return$ret;
}
/** 将数组元素进行urlencode
* @param String $val
*/
function jsonFormatProtect(&$val){
if($val!==true && $val!==false && $val!==null){
$val= urlencode($val);
}
}
?>
个人主页
- php json多层乱码解决
- php接收多层数组中文乱码解决
- phpjson多层乱码解决
- php json多层遍历
- JSON.PHP对中文乱码的解决
- php+json+ajax解决中文乱码笔记
- PHP 编程JSON数据中文乱码问题的解决
- 解决 json 乱码问题
- 解决JSON乱码问题
- php json 中文乱码
- php json 中文乱码
- 解决php中json中文乱码以及JQuery读取中文乱码的问题
- PHP乱码如何解决
- php中文乱码解决
- php&mysql乱码解决
- MySQL+PHP乱码解决
- 解决php中文乱码
- PHP乱码终极解决
- 正则表达式匹配单行注解
- 基本TCP套接字编程总结
- 【Java】 java上传文件跟批量下载文件
- 微信网页授权
- Android获取Manifest中<meta-data>元素的值
- php json多层乱码解决
- 学习笔记(java编程思想)
- JavaScript将String转为double类型
- iOS开发之音视频边下边播缓存方案
- 进程和线程(喜欢的就简单点)
- 这个是测试demo
- ios开发 button或UIimageview加载图片显示颜色不显示图片
- Linux系统下如果查看用户的UID和GID
- 关于python字符串编码问题的理解