今天接手了一个项目,里面有个功能点是点赞评论的功能,之前写的代码用户输入表情符号后我们返显出来的是一堆???问号

  • 大概原因:UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去,识别不出来就成了一堆???。
  • 解决方案:先把用户选择的表情符号用charCodeAt给转成编码,取数据时再解码成16进制的就好了。

这里直接封装好的两个js方法,粘贴复制直接调用就行

     //编码:emojiEncode(e) {var n = /[\ud800-\udbff][\udc00-\udfff]/g;// 检测utf16字符正则return e = e.replace(n, function(e) {var n, r;return 2 === e.length ? (n = e.charCodeAt(0), r = e.charCodeAt(1),"&#" + (1024 * (n - 55296) + 65536 + r - 56320) + ";") : e})},//解码:emojiDecode(e) {var n = /\&#.*?;/g; //获取数据库种16进制的数据//然后进行解码操作return e.replace(n, function(e) {var n, r, t;return 9 == e.length ? (t = parseInt(e.match(/[0-9]+/g)), n = Math.floor((t - 65536) / 1024) + 55296, r = (t - 65536) % 1024 + 56320, unescape("%u" + n.toString(16) + "%u" + r.toString(16))) : e})},//我们输入了评论内容把内容进行编码var data = {token: App.getP('token'),family_content_id: App.getP('family_content_id'),comment_message: this.emojiEncode(this.commentMessage)}//获取数据后在解码content: {text: that.emojiDecode(that.commentMessage),date: "刚刚"},

end~~~

如有错误或观点不一致的请评论留言共同讨论,本人前端小白一枚,根据自己实际项目遇到的问题进行总结分享,谢谢大家的阅读!
文章对您有所帮助请给作者点个赞支持下,谢谢~

前端解决表情符号乱码问题(前端处理表情符号编码)@令狐张豪相关推荐

  1. 前端实现点击复制功能,兼容Safari浏览器 @令狐张豪

    这里我们使用clipboard来实现 介绍:clipboard.js是一款轻量级的实现复制文本到剪贴板功能的JavaScript插件,支持很多主流浏览器,包括Safari //引入方式 <scr ...

  2. 前端解决粘贴过来的东西不触发键盘事件@令狐张豪

    描述: 在做登录的时候输入正确校验时按钮高亮并可以触发事件,我们正常输入的时候没问题,但是直接粘贴过来的时候input监听不到. 解决: 换成oninput事件 //vue写法 <input t ...

  3. 解决小程序底部导航在iphone x及以上机型上安全区域的适配问题@令狐张豪

    问题点:小程序底部导航如果写固定的位置在安卓系统上是没有问题的,但是在iPhone X及以上机型有安全区域的机器上就显得有点太靠下了,我们可以写成动态的: 解决思路:判断是Android 还是 iOS ...

  4. 解决在小程序/H5上点击输入框键盘弹起后弹框显示不全问题@令狐张豪

    要实现的效果图: 解决思路: 先禁止input键盘弹起时,是否自动上推页面: 点击input的时候获取键盘弹起来的高度: 把获取出来的高度赋值到弹框的margin-bottom上: 键盘失焦或弹框关闭 ...

  5. 前端解决跨域问题的8种方案(最新最全)

    .同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.j ...

  6. 前端——解决微信网页清除缓存的方法

    前端--解决微信网页清除缓存的方法 参考文章: (1)前端--解决微信网页清除缓存的方法 (2)https://www.cnblogs.com/fkcqwq/p/9604184.html 备忘一下.

  7. inline-block间隙原因和解决方法(web前端问题)

    inline-block间隙原因和解决方法(web前端问题) 参考文章: (1)inline-block间隙原因和解决方法(web前端问题) (2)https://www.cnblogs.com/ge ...

  8. 通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: '\xF0......

    原文:[原创]通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 'incorrect string value: '\xF0... 这篇blog重点在解决问题,如果你对 ...

  9. 前端解决跨域问题的8种方案

    2019独角兽企业重金招聘Python工程师标准>>> 1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/ ...

最新文章

  1. [优先队列] 洛谷 P2085 最小函数值
  2. numpy 创建数组
  3. android 定义date对象,如何从Date对象设置Android Chronometer基准时间?
  4. 软件需求分析文档模版
  5. cfg桩设备型号_什么是CFG桩?带您看下CFG桩施工工艺及流程,检测项目
  6. python中的异步与同步
  7. linux usr目录权限不够,【ARM-Linux开发】Ubuntu下的/usr目录权限,导致不能使用sudo命令的修复...
  8. matlab三角波发生器精度改为定点型,关于matlab simulink中三角波模块的问题!
  9. Python_base_正则表达式
  10. linux第三版 网页链接
  11. 《数据库系统》期末复习知识点总结(全)
  12. springboot中.yml 用jasypt 密码加密
  13. 阿里云STMP实现邮件发送
  14. linux下的.swp文件
  15. 安装CDH出现file /opt/cloudera/parcels/.flood/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel...does not exist
  16. 如何利用Python编程批量处理Excel来提高日常工作效率!
  17. 计算机谈音乐少年,听音乐起鸡皮疙瘩?你可能真的是天赋异禀的少年
  18. Android音频学习之MediaExtractor,提取音频视频轨道数据(从视频中分离音频视频数据)
  19. 科学松鼠会压缩感知科普文章两篇:“压缩感知与单像素相机(陶哲轩)”“填补空白:用数学方法将低分辨率图像变成高分辨率图像(Jordan Ellenberg)
  20. vc6.0 图片显示(个人笔记)

热门文章

  1. python3.5源码分析-启动与虚拟机
  2. HTML基础教程笔记
  3. 如何查看计算机组策略,如何查看哪些组策略应用于您的PC和用户帐户 | MOS86
  4. adsafe净网大师不能拦截广告是什么情况?怎么处理?
  5. 离散实验 实验二 真值表
  6. daemon 守护线程
  7. 微软office365服务器ip,使用Office365账号配置SMTP中继服务器
  8. Zadig, 极客的浪漫
  9. python 获取系统开机时间
  10. sublime一键代码格式化