微信小程序> 微信emoji表情,微信小程序或者前端,输入键盘自带的emoji表情的编码解码

微信emoji表情,微信小程序或者前端,输入键盘自带的emoji表情的编码解码

浏览量:788 时间: 来源:weixin_34417814
表情符的编码解码我之前在做微信小程序的时候遇到了一个问题,一些让用户输入的地方,还有用户的微信昵称都有可能输入键盘自带的emoji表情符,在服务端接收的时候会有异常,在前端进行MD5加密后的签名和后端接收到数据后再进行MD5后的签名不一样。
网上有给出一些解决方法,比如加载表情符图片,修改数据库的字符编码等,这些方法都不太好,也没有解决问题,后面找了比较久才找到合适的解决的方法:表情符编码是十六进制的,需要把表情符转码成八进制的。
下面是我用到的代码:
//把utf16的emoji表情字符进行转码成八进制的字符functionutf16toEntities(str){varpatt=/[ud800-udbff][udc00-udfff]/g;//检测utf16字符正则returnstr.replace(patt,function(char){varH,L,code;if(char.length===2){H=char.charCodeAt(0);//取出高位L=char.charCodeAt(1);//取出低位code=(H-0xD800)0x400+0x10000+L-0xDC00;//转换算法return"&#"+code+";";}else{returnchar;}});}//将编码后的八进制的emoji表情重新解码成十六进制的表情字符functionentitiesToUtf16(str){returnstr.replace(/&#(d+);/g,function(match,dec){letH=Math.floor((dec-0x10000)/0x400)+0xD800;letL=Math.floor(dec-0x10000)%0x400+0xDC00;returnString.fromCharCode(H,L);});}

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎