微信公众号API返回不可打印字符的处理。
2016-04-04 11:21
951 查看
引言
在使用微信公众号的“批量获取用户基本信息”API时,发现在某些时候不能使用php的json_decode转为数组,打印出curl获取到的内容中,发现了几个不可打印字符。相信不少朋友都应该发现了这个问题吧?
1.在firefox中,不可打印字符通过特殊的处理可以显示出来具体是哪一个不可打印字符。当然用sublime text也能看到不可打印字符会高亮显示。
可以看出是x0010和x0090,其中x0010是不可打印字符。
,x0010显示为高亮的"DLE",
2.替换掉不可打印字符后能正常的转为数组了:
$data = preg_replace('/[\x{0}-\x{1f}]/u', '', $data);
3.查看全部的不可打印字符在sublime中显示情况:
<?php
for($i=0;$i<32;$i++)
{
echo $i." = ".chr($i);
}
?>
可以看出每一个“小方框”中的数字是对应的。在谷歌浏览器中是完全过滤掉控制字符的。
4.这些字符可能是emoji引起,那是不是所有emoji都不能转为数组呢?答案是否定的。
目前不知道为什么原因导致微信api会返回非可打印字符,但其他utf8mb4编码(主要是emoji)的字符是可以被json_decode的。例如:相关文章推荐
- PHP微信表白墙重构(一)概述
- 假如微信可以匿名评论,你的朋友圈肯定这样
- 安卓微信分身版 一部手机同时登录多个微信号 原理
- 【转】微信Android SDK示例代码及运行方法
- java微信开发API解析(一)-服务器接入
- 微信爱帮周边查询
- 微信JS-SDK调用
- 使用ngrok让微信公众平台通过80端口访问本机
- 笔试题——微信红包
- nasm汇编语言小程序:计算多个指定位置的Fibonacci值
- 微信开发:如何一键拨打电话
- JS调用微信API实现微信支付
- 浅尝微信朋友圈的细节之美
- 函数版注册登陆小程序
- 微信代码
- java基础小程序,金山打字原理
- Html5 手机wap开发、微信开发、APP开发的优缺点-创业者必知
- 微信企业号申请详细流程
- android 仿 微信带尖角的popwindow
- 微信支付 细节坑