微信接口,返回ASCII码,json_encode后出现null

昨天解决客户的一个问题,描述下问题:

客户通过微信获取用户基本信息接口,来获取用户信息,接口地址:

http请求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN 

返回的json中,emoji表情等,这些字符还好。在city,province,country字段中,出现了“FS”这种ASCII码。。。查看我的这些字段,是不可以自定义的,只能是太原,山西,中国。可能早起的用户,允许自己填写吧。

这个问题,还真不好找。。。我在浏览器上调试,怎么都看不出来。后来将内容复制到编辑器中,才发现了这个“不可见字符”,如下是截图:

我这是对编码啦,字符啊,之类的,几乎不懂,以前也是瞎看了些资料,当时可能觉得明白了,也没有总结过,所以忘的一干二净,包括以前资料的地址都忘记了。所以得总结下来!经自己手书过,印象更深点!

紧接着,如何解决??说下自己的思路,要我想编码算法等,完全是不可能。非计算机专业,培训php3个月,对操作系统,算法,数据结构,tcp/IP协议 基本没啥了解,不可能写出啥高深的东西(我也不想否定自己,不过在这行,真还算是新手,虽然已工作2年半了。。)

1.进php手册,查看字符串操作函数,挨着迅速看一遍,有些东西是孰能生巧的(手册这东西真的有时间得多看,起码都知道php能干什么-我也一直是这么想的,不过也一直没看。。)

2.找到

bin2hex — 函数把ASCII字符的字符串转换为十六进制值

hex2bin() - 转换十六进制字符串为二进制字符串

想到的肯定是,先匹配出来对应的值,转码后,等json结束后,再反转回来即可。下面是解决方案的截图:


这里为了更安全点,加了个实体转换,防止有问题。

这个只是个小问题,针对遇到的这个问题,搜索了下ASCII码,以前一直没怎么细看。这次详细的看了看。参考了2个地址:

http://blog.csdn.net/stpeace/article/details/51619704

http://tool.oschina.net/commons

我也得将第二个地址中总结的几个对照表,转到我博客中,防止遗忘地址,就新建一个编码分类好了:

常用对照表,点击查看即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值