欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

json_decode()问题

程序员文章站 2022-04-27 21:47:49
...
        $vvv='{"subscribe":1,"openid":"ol2E7uLeDEi4VCBwrXI0KRwcvnyo","nickname":"xhm","sex":2,"language":"zh_CN","city":"mñW3","province":"^N","country":"","headimgurl":"http:\/\/wx.qlogo.cn\/mmopen\/PiajxSqBRaELiaLZZTltPhZobM3QcvGyGgRXnAlcPm8iaoWQWvuNuIFZk3kOOeNCQok1W4l6zashSAMfMSiasN4eZhbuib4NXuQNmQuFMn2XBd9M\/0","subscribe_time":1458906765,"remark":"","groupid":0}';        var_dump(json_decode($vvv,true));exit;

转不了,返回值为null,是因为city和province的值 是特殊符号,请问怎样处理?


回复讨论(解决方案)

特殊符号进行转意

应该先解决city和province乱码的问题,再去json_decode,因为手册上说,json_decode必须是utf-8的编码格式。可以尝试用iconv相关函数试试

应该先解决city和province乱码的问题,再去json_decode,因为手册上说,json_decode必须是utf-8的编码格式。可以尝试用iconv相关函数试试

iconv试了,不行

city = 深圳
province = 广东

$vvv = iconv('ucs-2', 'utf-8', $vvv);var_dump(json_decode($vvv,true));
需要注意的是,你的 $vvv 必须是原始渠道的来的数据,而不是你贴出的经复制粘贴的数据
原始的 unicode 数据,经过复制粘贴,就无法再恢复了

"city":"mñW3","province":"^N
有不是utf8的数据,需要先处理

city = 深圳
province = 广东

$vvv = iconv('ucs-2', 'utf-8', $vvv);var_dump(json_decode($vvv,true));
需要注意的是,你的 $vvv 必须是原始渠道的来的数据,而不是你贴出的经复制粘贴的数据
原始的 unicode 数据,经过复制粘贴,就无法再恢复了
不行啊,我这数据是从微信接口那里得来的,我没有处理过就json_decode了,但是微信那里有些资料的确是有乱码的

相关标签: json_decode()问题