表情符的编码解码我之前在做微信小程序的时候遇到了一个问题,一些让用户输入的地方,还有用户的微信昵称都有可能输入键盘自带的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);});}
最新资讯
-

小程序制作平台选型踩坑记录:2026年五大主流方案横向对比
2026 年微信小程序月活达 10.7 亿、覆盖 108 个行业,本次横向对比即速应用、乔拓云、凡科、有赞、微盟五大主流平台,分三阶段给出选型结论,核心聚焦成本、扩展性、运营能力三大维度。 -

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。










