有朋友提问关于微信中发送的emoji表情处理的问题. 微信发送的emoji表情直接编码在了字符串中,所以我们如果直接打印, php中不能正确识别,我们需要做一些特殊的处理. 我们先看看处理结果: ![]() 接收到微信服务器发送过来的消息字符串后, 首先经过json_encode处理,将所有字符转化为i`\u`模式. 将得到类似这样的字符串`msg after encode "\ue159\u3010\u516c\u4ea4\/\u5730\u94c1\u3011"` 然后我们对这个字符串进行正则,将emoji表情的区段找出来然后在此类型的区段前添加一个`\`, 于是得到了如下的字符串`msg after replace "\\ue159\u3010\u516c\u4ea4\/\u5730\u94c1\u3011"`. 然后对正则变换以后的字符串进行json_decode, 这样就得到了网页可以理解的字符串模式,`user send to server: \ue159【公交/地铁】`. 在这个过成功,我们通过正则找到了代码中的emoji为`\ue159`,实际上我们可以根据我们的需要, 把这个字符串替换为任意我们需要的格式.例如我们可以替换为`U+e159`. 在发送消息时处理就方便多了,我们只需要把指定的`\ue159`执行`json_decode`就ok了!! 下面是我们的代码: 游客,如果您要查看本帖隐藏内容请回复 如果想在自动定义菜单中加入emoji表情的话也很简单, 我们之前介绍过如何创建自定义菜单, 唯一不同的是在创建自定义菜单的时候, 访问http:///这个网页, 然后把网页中需要的表情,拷贝到按钮的`name`字段里就可以了. ![]() |
|