原文链接 : https://blog.csdn.net/binjly/article/details/47321043

  今天,测试给我提了一个BUG,说移动端输入emoji表情无法提交。很早以前就有思考过,手机输入法里自带的emoji表情,应该是某些特殊字符。既然是字符,那应该都能提交才对,可是为啥会被卡住呢?搜了一下,才发现,原来emoji用到的字符是4字节的utf-16(utf-16有2字节和4字节两种编码),而我们的数据库是采用的utf-8,并且最大只允许3字节的字符。这样冲突就产生了,表单因为这些emoji字符的存在无法提交。

  找到原因之后,接下来就要考虑解决方案了。目前考虑到的两种方案,一是让后台处理,把这个utf-16字符做一些转换(这里不做讨论)。第二种办法就是在前端直接转换成实体字符后再提交。这样,后台不用做任何处理,用户的提交的信息也得以保留,是不是一个两全其美的办法呢?接下来我们要讨论的就是怎么把emoji表情字符转换成实体字符。

  首先,我们来看看手机输入法里自带的emoji字符是什么样。下面截了一张图,来自 http://computerism.ru/emoji-smiles.htm 。我们看到,每个emoji表情字符对应的实体字符编码都比较大,如第一行的笑脸,实体字符为

移动前端手机输入法自带emoji表情字符处理相关推荐

  1. php过滤处理手机自带Emoji表情

    php过滤处理手机自带Emoji表情 // 过滤掉emoji表情public function filterEmoji($str){$str = preg_replace_callback('/./u ...

  2. android手机自带表情符号,android系统自带Emoji表情与表情描述互相转换

    前言 Emoji表情几乎都是有表情描述的,如愤怒的表情会有[愤怒],这样的描述,这里就是举了个列子,至于是什么样的表现形势,这是可以自己定义的.那么这样,一个表情带一个表情描述的好处就是,当我们发送信 ...

  3. polycom安卓手机客户端_安卓 emoji 表情:全变了

    谷歌今天发布下一代安卓系统 Android O 新的测试版,带来了全新的 emoji 表情.准确点说,是原生安卓的 emoji 全变了,因为很多定制化安卓系统都用 iOS 那套表情,或者用自己独立设计 ...

  4. mysql插入表情_向MySQL数据库中插入带emoji表情符的数据时报错

    问题:向MySQL数据库中插入带emoji表情符的数据时报错 原因:utf8字符集不支持emoji表情符,需要改为utf8mb4字符集(utf8mb4是MySQL在5.5.3之后增加的,实际开发中建议 ...

  5. Android 显示输入法中的emoji表情以及String字符串转码

    Android 显示输入法中的emoji表情以及String字符串转码 实现用原生键盘输入表情并显示,有两种办法: 发送时将String字符串转换为Unicode编码字符串,显示接收的列表时用Unic ...

  6. PHP处理微信中带Emoji表情的消息发送和接收(Unicode字符转码编码)

    在进行微信公众号开发者接入的时候,与用户的对话互动中,涉及到的文本信息不仅仅是文字那么简单,其中可能还会包含着各种表情字符,例如「emoji表情」. 百科:  Emoji 由于微信接口中对于emoji ...

  7. 处理emoji表情字符

    关于对emoji表情,将自己整理到的方法写个记录 一.前端处理 1. 过滤掉emoji表情,但是emoji表情更新,会存在漏网之鱼,且用户体验感不好 function filteremoji(){va ...

  8. 【Android】显示Emoji表情字符

    一.下载AndroidEmoji.ttf字体 地址1:Github Android Platform 地址2:AndroidEmoji.ttf.zip 二.使用 2.1 将字体拷贝到assets/fo ...

  9. 【转】【异常处理】Incorrect string value: ‘\xF0\x90\x8D\x83...‘ for column... Emoji表情字符过滤的Java实现

    [转][异常处理]Incorrect string value: '\xF0\x90\x8D\x83...' for column... Emoji表情字符过滤的Java实现 参考文章: (1)[转] ...

最新文章

  1. C# WinForm源码收集
  2. linux c 错误 'for' loop initial declaration used outside C99 mode
  3. 想写游戏吗?手把手教你SDL的安装及配置(亲测有效!)
  4. Java 8系列之重构和定制收集器
  5. python处理excel可视化_python如何将excel数据处理可视化
  6. c#设计12星座速配软件_C#设计模式(12)——组合模式
  7. 光端机与光纤收发器的区别
  8. IO流介绍与File类
  9. 利用NSFileManager获取文件(文件夹)列表
  10. 手机无线信道测试软件,WiFi不稳定经常断?手机WiFi信道小工具
  11. Mac—Excel转图片
  12. (Cisco模拟)链路聚合 Eth-trunk
  13. 还在职,入职A签订了竞业限制,如何解除?
  14. pandas 中delete、drop函数的用法
  15. Python 深拷贝和浅拷贝详解
  16. Java面试题大全带答案 40道
  17. UML --Package
  18. 我们如何在Linkerd 2.2里设计重试 1
  19. 中国大学计算机专业排名教育部,全国计算机专业学校排名!别选错学校了
  20. 华为设备配置BGP AS号替换

热门文章

  1. Oracle EBS Interface/API(13)-MRP Forcast 创建预测名称和预测物料导入
  2. 【我的Android进阶之旅】 高效的设计稿标注及测量工具Markman介绍
  3. semantic ui中文文档_求你别再用swagger了,给你推荐几个在线文档生成神器
  4. 经典Hbase面试7题(附答案)
  5. margin与padding的区别
  6. 自然语言处理实战——对电影评论进行情感分析(英文)
  7. kotlin map和Json转换,Json解析
  8. 微信小程序 修改 radio 默认 样式
  9. 办公实用资源网站分享,每一款都能让你升职加薪
  10. 古典音乐入门的常见问题