找回密码
 立即注册

QQ登录

只需一步,快速开始

微信葡京娱乐网址号开发资源

关注:848

所属分类: 微信开发 微信葡京娱乐网址号开发资源

本版块为微信葡京娱乐网址号开发教程与葡京娱乐网址号开发相关技术分享板块,技术提问请到其他对应的问答板块发帖:)

[葡京娱乐网址号开发博客] PHP处理微信中带Emoji表情的消息发送和接收

[复制链接]
查看: 3774|回复: 6
最佳答案
26 

6

主题

221

帖子

1726

积分

专家路上

积分
1726
在进行微信葡京娱乐网址号开发者接入的时候,与用户的对话互动中,涉及到的文本信息不仅仅是文字那么简单,其中可能还会包含着各种表情字符,例如「emoji表情」。

由于微信接口中对于emoji表情使用的是utf-8的二进制字符串,并没有解码,表现就是当收到微信端用户发来的emoji表情时,显示为一个方块型「」或是无法显示的字符,这时就需要对其进行转码。同理在向微信服务器发送带有emojib表情的文本消息时,也需要将表情字符编码为此格式进行发送(早前微信可以直接发送unicode码显示emoji表情,但是现在已经不支持了)。

每个emoji表情其实都有相应的unicode编码,在解析用户向葡京娱乐网址号发送的文字中的emoji表情字符时,我们可以根据unicode码来匹配或存储信息中的emoji表情;同理在向用户发送包含emoji表情的文字消息时,则将表情字符根据unicode编码进行二进制转码后再发送。这里推荐使用softbank版本的emoji编码进行unicode转换,例如,”U+E04A” 转换为 “\ue04a”,与微信匹配。文章结尾附上了我转换好的emoji unicode编码数据表,可以与 github.com/iamcal/php-emoji 的样式表和图片相结合。

下面是我的处理方法。首先是对收取消息时的解析部分:

在收到一段可能含有emoji表情的文本内容后,可以简单的使用 json_encode($str) 将其进行JSON编码,此时消息中的表情、中文等字符将会被转为unicode编码显示。(这里进行JSON编码就是为了获得字符的unicode码,所以json_encode函数中不需要增加避免unicode的可选参数了)

例如: “你好  hello 123″ 将被编码为” \u4f60\u597d \ue415 hello 123 “

字符中的\ue415就是一个emoji表情,此时我们就可以对字符进行正则判断来筛选出哪些是emoji表情了。我的做法是把emoji的unicode字符串反斜杠转义,然后再将字符json_decode还原,这样就可以将除了emoji之外的字符还原(不会影响到中文等其他字符),只留下emoji的unicode码。

你也可以用别的方法,比如做一个标记和替换,例如将”\ue415″替换为”[em:ue415]“,类似于QQ表情的做法,在需要显示文本和表情的时候,就可以方便的对表情字符做出匹配渲染。或者也可以直接把他替换成HTML的img标签把表情图片存进去,但是这样不利于维护。

我使用的正则粗暴简单,选择了 ue000 – uefff 之间的字符视为emoji,暂时没有发现误伤:
  1. $str = preg_replace("#(\\\ue[0-9a-f]{3})#ie","addslashes('\\1')",$str);
复制葡京赌场网站

整个过程完整葡京赌场网站如下:
  1. $text = "你好  hello 123"; //可以为收到的微信消息,可能包含二进制emoji表情字符串
  2. $tmpStr = json_encode($text); //暴露出unicode
  3. $tmpStr = preg_replace("#(\\\ue[0-9a-f]{3})#ie","addslashes('\\1')",$tmpStr); //将emoji的unicode留下,其他不动
  4. $text = json_decode($tmpStr);
  5.   
  6. echo $text;//你好 \ue415 hello 123
复制葡京赌场网站

之后就可以存储信息了,在读取出信息到页面的时候就可以进行字符替换和模板渲染了。

这里可以参考这个项目提供的样式表和图片进行表情渲染:github.com/iamcal/php-emoji

下面是发送部分,就更简单了:

对于一条包含emoji的文本消息,可以先放入其unicode字符,还是拿刚才的这段来举例子:”你好 \ue415 hello 123 “。

然后使用正则筛选出文本中的emoji unicode,对其进行二进制pack,UTF8转码,再放入原文本中即可(这一步应该在消息发送前最后来做,先准备好完整的文本消息再进行转码处理)。葡京赌场网站如下:
  1. $text = "你好 \ue415 hello 123"; //可以为将要发送的微信消息,包含emoji表情unicode字符串,需要转为utf8二进制字符串
  2. $text = preg_replace("#\\\u([0-9a-f]+)#ie","iconv('UCS-2','utf-8', pack('H4', '\\1'))",$text); //对emoji unicode进行二进制pack并转utf8

  3. echo $text;//你好  hello 123
复制葡京赌场网站

这样就可以对微信服务器发送了。

附上我使用的emoji unicode的编码数据表:mc-zone/emoji-code,数据中增加了根据softbank编码转换的unicode值(softb_unicode字段),可以和微信中使用的相匹配。

表情的数据和css样式名参考了这个项目:github.com/iamcal/php-emoji ,可以结合使用。
回复

使用道具 举报

最佳答案
0 

2

主题

345

帖子

3951

积分

专家路上

积分
3951
发表于 2016-5-25 22:47:34 | 显示全部楼层
学习了,支持一下。
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

4682

帖子

50

积分

新人求带

积分
50
发表于 2018-5-7 21:22:54 | 显示全部楼层
真的是好东西。哇哈哈
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

4682

帖子

50

积分

新人求带

积分
50
发表于 2018-5-7 23:33:28 | 显示全部楼层
过来看看!孙便听一下!都不容易!支持
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

4682

帖子

50

积分

新人求带

积分
50
发表于 2018-5-7 23:44:45 | 显示全部楼层
谢谢分享 不知道是不是破解版的。。。
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

1

帖子

30

积分

等待验证会员

积分
30
发表于 2019-2-3 11:16:12 | 显示全部楼层
32225669_201902011906080716135928.png

32225669_201902011918140608150575.png


32225669_201902011940140735396846.png


32225669_201902012101310094546214.png


32225669_201902012114530443379537.png

32225669_201902012134220795732511.png

32225669_201902012258200768821626.png

32225669_201902012313110196135634.png


32225669_201902020004180631265981.png

32225669_201902020005510052164416.png

32225669_201902021116410012112161.png

32225669_201902021128050540594382.png

32225669_201902021136140302341618.png

32225669_201902021143090534550439.png

32225669_201902021149000219482789.png

32225669_201902021154500780876027.png


32225669_201902021200110153431130.png




回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

3

帖子

80

积分

新人求带

积分
80
发表于 2019-2-7 13:57:48 | 显示全部楼层
好帖,确实好帖!
        液位计                 http://www.mmmxy.com
        液位开关                 http://www.mmmxy.com
        料位计                 http://www.mmmxy.com
        料位开关                 http://www.mmmxy.com
        温度传感器                 http://www.mmmxy.com
        压力变送器                 http://www.mmmxy.com
        流量开关                 http://www.mmmxy.com
        流量计                 http://www.mmmxy.com
        磁翻板液位计                 http://www.mmmxy.com
        磁翻柱液位计                 http://www.mmmxy.com
        磁翻转液位计                 http://www.mmmxy.com
        磁性浮子液位计                 http://www.mmmxy.com
        磁耦合液位计                 http://www.mmmxy.com
        磁浮子液位计                 http://www.mmmxy.com
        磁翻板式液位计                 http://www.mmmxy.com
        磁翻柱式液位计                 http://www.mmmxy.com
        磁性浮子式液位计                 http://www.mmmxy.com
        磁浮子式液位计                 http://www.mmmxy.com
        带远传磁翻板液位计                 http://www.mmmxy.com
        苏州磁翻板液位计                 http://www.mmmxy.com
        成丰磁翻板液位计                 http://www.mmmxy.com
        浮球液位计                 http://www.mmmxy.com
        浮球连续式液位计                 http://www.mmmxy.com
        磁性浮球液位计                 http://www.mmmxy.com
        浮球式液位计                 http://www.mmmxy.com
        连杆浮球液位计                 http://www.mmmxy.com
        防爆浮球液位计                 http://www.mmmxy.com
        磁浮球液位计                 http://www.mmmxy.com
        电容液位计                 http://www.mmmxy.com
肺癌康复中心       https://www.zgdfxm.com
肺癌筛查中心       https://www.zgdfxm.com
肝癌康复中心       https://www.zgdfxm.com
肝癌筛查中心       https://www.zgdfxm.com
胃癌康复中心       https://www.zgdfxm.com
胃癌筛查中心       https://www.zgdfxm.com
食道癌康复中心       https://www.zgdfxm.com
食道癌筛查中心       https://www.zgdfxm.com
卵巢癌康复中心       https://www.zgdfxm.com
卵巢癌筛查中心       https://www.zgdfxm.com
子宫癌康复中心       https://www.zgdfxm.com
子宫癌筛查中心       https://www.zgdfxm.com
胆囊癌康复中心       https://www.zgdfxm.com
胆囊癌筛查中心       https://www.zgdfxm.com
喉癌脑康复中心       https://www.zgdfxm.com
喉癌脑筛查中心       https://www.zgdfxm.com
血管瘤康复中心       https://www.zgdfxm.com
血管瘤筛查中心       https://www.zgdfxm.com
前列腺癌康复中心       https://www.zgdfxm.com
前列腺癌筛查中心       https://www.zgdfxm.com
肾癌康复中心       https://www.zgdfxm.com
肾癌筛查中心       https://www.zgdfxm.com
骨癌康复中心       https://www.zgdfxm.com
骨癌筛查中心       https://www.zgdfxm.com
舌癌康复中心       https://www.zgdfxm.com
舌癌筛查中心       https://www.zgdfxm.com
淋巴癌康复中心       https://www.zgdfxm.com
淋巴癌筛查中心       https://www.zgdfxm.com
胰腺癌康复中心       https://www.zgdfxm.com
胰腺癌筛查中心       https://www.zgdfxm.com
黑素瘤康复中心       https://www.zgdfxm.com
黑素瘤筛查中心       https://www.zgdfxm.com
白血病康复中心       https://www.zgdfxm.com
白血病筛查中心       https://www.zgdfxm.com
宫颈癌康复中心       https://www.zgdfxm.com
宫颈癌筛查中心       https://www.zgdfxm.com
甲状腺癌康复中心       https://www.zgdfxm.com
甲状腺癌筛查中心       https://www.zgdfxm.com
胸腺癌康复中心       https://www.zgdfxm.com
胸腺癌筛查中心       https://www.zgdfxm.com
肺癌有晚期康复的地方么       https://www.zgdfxm.com
肝癌有晚期康复的地方么       https://www.zgdfxm.com
胃癌有晚期康复的地方么       https://www.zgdfxm.com
食道癌有晚期康复的地方么       https://www.zgdfxm.com
卵巢癌有晚期康复的地方么       https://www.zgdfxm.com
子宫癌有晚期康复的地方么       https://www.zgdfxm.com
胆囊癌有晚期康复的地方么       https://www.zgdfxm.com
喉癌脑有晚期康复的地方么       https://www.zgdfxm.com
血管瘤有晚期康复的地方么       https://www.zgdfxm.com
前列腺癌有晚期康复的地方么       https://www.zgdfxm.com
肾癌有晚期康复的地方么       https://www.zgdfxm.com
骨癌有晚期康复的地方么       https://www.zgdfxm.com
舌癌有晚期康复的地方么       https://www.zgdfxm.com
淋巴癌有晚期康复的地方么       https://www.zgdfxm.com
胰腺癌有晚期康复的地方么       https://www.zgdfxm.com
黑素瘤有晚期康复的地方么       https://www.zgdfxm.com
白血病有晚期康复的地方么       https://www.zgdfxm.com
宫颈癌有晚期康复的地方么       https://www.zgdfxm.com
甲状腺癌有晚期康复的地方么       https://www.zgdfxm.com
胸腺癌有晚期康复的地方么       https://www.zgdfxm.com
肺癌预防哪家好       https://www.zgdfxm.com
肺癌哪里筛查       https://www.zgdfxm.com
肺癌晚期康复哪家好       https://www.zgdfxm.com
肝癌预防哪家好       https://www.zgdfxm.com
肝癌哪里筛查       https://www.zgdfxm.com
肝癌晚期康复哪家好       https://www.zgdfxm.com
胃癌预防哪家好       https://www.zgdfxm.com
胃癌哪里筛查       https://www.zgdfxm.com
胃癌晚期康复哪家好       https://www.zgdfxm.com
食道癌预防哪家好       https://www.zgdfxm.com
食道癌哪里筛查       https://www.zgdfxm.com
食道癌晚期康复哪家好       https://www.zgdfxm.com
卵巢癌预防哪家好       https://www.zgdfxm.com
卵巢癌哪里筛查       https://www.zgdfxm.com
卵巢癌晚期康复哪家好       https://www.zgdfxm.com
子宫癌预防哪家好       https://www.zgdfxm.com
子宫癌哪里筛查       https://www.zgdfxm.com
子宫癌晚期康复哪家好       https://www.zgdfxm.com
胆囊癌预防哪家好       https://www.zgdfxm.com
胆囊癌哪里筛查       https://www.zgdfxm.com
胆囊癌晚期康复哪家好       https://www.zgdfxm.com
喉癌脑预防哪家好       https://www.zgdfxm.com
喉癌脑哪里筛查       https://www.zgdfxm.com
喉癌脑晚期康复哪家好       https://www.zgdfxm.com
血管瘤预防哪家好       https://www.zgdfxm.com
血管瘤哪里筛查       https://www.zgdfxm.com
血管瘤晚期康复哪家好       https://www.zgdfxm.com
前列腺癌预防哪家好       https://www.zgdfxm.com
前列腺癌哪里筛查       https://www.zgdfxm.com
前列腺癌晚期康复哪家好       https://www.zgdfxm.com
肾癌预防哪家好       https://www.zgdfxm.com
肾癌哪里筛查       https://www.zgdfxm.com
肾癌晚期康复哪家好       https://www.zgdfxm.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



www.mainetimberworks.com—微信开发者的分享交流平台,专注微信开发生态。

天津市滨海新区
中新生态城中成大道生态建设公寓9号楼3层301

微信葡京娱乐网址号

市场合作
[email protected]