• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

Emoji 表情符号那些坑

技术杂谈 勤劳的小蚂蚁 3个月前 (01-08) 109次浏览 已收录 0个评论 扫描二维码

一、Emoji是什么?
它是一种在网页和聊天中使用的形意符号,被称为“绘文字”;最早由栗田穰崇创作,并在日本在无线通信中所使用;2007年,苹果公司发布的iOS 5输入法中加入了emoji后,这种表情符号开始在全球广泛使用。
二、Emoji 发展历史
早期的 Emoji 是将一些特定的符号组合替换成图片,这种方法很难标准化,能够表达的范围也有限。2010年10月发布的Unicode 6.0版首次收录绘文字编码,也就是说现在的 Emoji 符号就是一个文字,会被渲染成相应的形意符号。
由于 Emoji 符号使用越来越广泛,Emoji 的国际标准在 2015 年出台,目前已更新到 10.0 版本。
有的小伙伴可能会问,为什么每个系统显示图形不太一致呢?
这也就是说Unicode组织只是指定标准,比如说码点U+1F468表示男人表情,具体这个男人长成什么样,由各个系统来具体实现。因此,也有可能你的系统没有实现这个Emoji表情,那么你就只能看到一个没有内容的方框了。
目前来说,苹果系统、安卓系统、微信、Github、微博、Twitter、Facebook、Reddit等都有各自的Emoji实现。
三、Bug 起因
原因:由于Mysql里UTF8编码最多只能支持3个字节,而Emoji表情字符使用的UTF8编码,很多都是4个字节,有些甚至是6个字节。
这里有两种修复方案:
  1. 过滤掉表情符号。
  2. 使用utf8mb4的mysql编码来容纳这些字符。
我一般在选取方案上,优先选择保证数据准确性的方案;因此,本文主要采用第二种处理办法。
四、容纳 Emoji 方案
1. Mysql处理方法
改配置文件/etc/my.cnf(window为my.ini):
说明:mysql支持utf8mb4的版本是5.5.3+,必须升级到较新版本。
查看版本:
执行数据库和表、字段的字符集sql:
重启Mysql:
检验是否修改好?
2. Java 服务端处理方法
先引入相关依赖,如下:
这里只需要一句代码就可以搞定,更多的使用方法请去github上面查看。
3.网页中如何使用?
这里利用的是twitter开源的表情库;更多使用方法请去官网查看。
五、结果展示


六、参考


    丨极客文库, 版权所有丨如未注明 , 均为原创丨
    本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
    转载请注明原文链接:Emoji 表情符号那些坑
    喜欢 (0)
    [247507792@qq.com]
    分享 (0)
    勤劳的小蚂蚁
    关于作者:
    温馨提示:本文来源于网络,转载文章皆标明了出处,如果您发现侵权文章,请及时向站长反馈删除。

    您必须 登录 才能发表评论!

    • 精品技术教程
    • 编程资源分享
    • 问答交流社区
    • 极客文库知识库

    客服QQ


    QQ:2248886839


    工作时间:09:00-23:00