<?php
header("Content-Type:text/html; charset=utf-8");
$arr = Array(
'subscribe' => 1,
'openid' => 'obGpMw9yTS9ZMIPCRwQ7Xn0nKenU ',
'nickname' => 'Duang ',
'sex' => 1,
'language' => 'zh_CN',
'city' => '武汉',
'province' => '湖北',
'country' => '中国',
'headimgurl' => 'http://wx.qlogo.cn/mmopen/u2NhHPqCsrcW1HvGHEcjfJuWZwBKKLf3q9YTcQictC7ibLhiaWqU7gJgEx6s8kYoxX7OtRIhIDJq1HGaHES8Ml9iagScibJyGEKju/0',
'subscribe_time' => 1481461011,
'remark' => '140554455-\u54e6\u54e6',
'groupid' => 109,
'tagid_list' => Array('0' => 109));
echo "json返回的数据";
echo "<br>";
print_r($arr);
echo "<br>";
echo "<br>";
echo '处理过的json返回数据';
$a = preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2BE', 'UTF-8', pack('H4', '\\1'))", $arr);
print_r($a);
微信返回的用户数据有一部分乱码,处理过以后可以更正,但是貌似最后一个数组不能读取了而且还报了一个提示,有没有什么完美的办法
以下是移动用户分组的代码
/*移动用户分组*/
function move_group($openid, $groupid)
{
$url = "https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=" . $this->access_token;
$group = array("openid" => $openid, "to_groupid" => $groupid);
$jsonStr = json_encode($group);
$retu = $this->https_request($url, $jsonStr);
return $retu;
}
// http://www.bubuko.com/infodetail-1648797.html
private function https_request($url, $data = null)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)) {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
这个不算是乱码吧,是正常的 unicode 吧。
你正常操作就行,或者你就在读取的时候转一下。比如 js 是这样应该可以:
php 直接 :