$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了,但是那裡有些資料的確是有亂碼的