Emoji 表情符号那些坑

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Emoji 表情符号那些坑

一、Emoji是什么?

它是一种在网页和聊天中使用的形意符号,被称为“绘文字”;最早由栗田穰崇创作,并在日本在无线通信中所使用;2007年,苹果公司发布的iOS 5输入法中加入了emoji后,这种表情符号开始在全球广泛使用。

image.png

二、Emoji 发展历史

早期的 Emoji 是将一些特定的符号组合替换成图片,这种方法很难标准化,能够表达的范围也有限。2010年10月发布的Unicode 6.0版首次收录绘文字编码,也就是说现在的 Emoji 符号就是一个文字,会被渲染成相应的形意符号。

image.png


由于 Emoji 符号使用越来越广泛,Emoji 的国际标准在 2015 年出台,目前已更新到 10.0 版本。

image.png

有的小伙伴可能会问,为什么每个系统显示图形不太一致呢?

这也就是说Unicode组织只是指定标准,比如说码点U+1F468表示男人表情,具体这个男人长成什么样,由各个系统来具体实现。因此,也有可能你的系统没有实现这个Emoji表情,那么你就只能看到一个没有内容的方框了。

目前来说,苹果系统、安卓系统、微信、Github、微博、Twitter、Facebook、Reddit等都有各自的Emoji实现。


三、Bug 起因

image.png

原因:由于Mysql里UTF8编码最多只能支持3个字节,而Emoji表情字符使用的UTF8编码,很多都是4个字节,有些甚至是6个字节。

这里有两种修复方案:

  1. 过滤掉表情符号。
  2. 使用utf8mb4的mysql编码来容纳这些字符。

我一般在选取方案上,优先选择保证数据准确性的方案;因此,本文主要采用第二种处理办法。


四、容纳 Emoji 方案

1. Mysql处理方法

改配置文件/etc/my.cnf(window为my.ini):

image.png

说明:mysql支持utf8mb4的版本是5.5.3+,必须升级到较新版本。

查看版本:

image.png

执行数据库和表、字段的字符集sql:

image.png

重启Mysql:

image.png

检验是否修改好?

image.png

2. Java 服务端处理方法

先引入相关依赖,如下:

image.png

这里只需要一句代码就可以搞定,更多的使用方法请去github上面查看。

image.png


3.网页中如何使用?

这里利用的是twitter开源的表情库;更多使用方法请去官网查看。

image.png

五、结果展示

image.png

六、参考

https://en.wikipedia.org/wiki/Emoji

https://www.dnacademy.com/emoji-domains

http://twitter.github.io/twemoji/

https://github.com/vdurmont/emoji-java


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
开发者 iOS开发
【Markdown小技巧】 整理小图标和表情符号
让博客变得更加优美,你需要这些萌萌的、好看的表情符号。以下是我收集的一些表情符号和小图标,分享给大家。
【Markdown小技巧】 整理小图标和表情符号
html,web页面朗读文字,朗读中文,朗读英文
html,web页面朗读文字,朗读中文,朗读英文
|
4月前
|
文字识别
【提取翻译竖排文字日文图片的软件】竖排的日语图片文字识别翻译,竖排的日语图片文字如何识别,竖排日语图片识别后转横排,竖排的日语识别比较友好的方法
这款软件专攻竖排日语图片文字识别,支持自动横排转换,能准确提取左右排版文字,并翻译成中文。用户可从百度网盘或腾讯云盘下载。功能包括图片打开、拖拽识别、截屏拾取、顺序识别、文字导出、快捷搜索及窗体操作。识别时注意保持文字等高以减少误差。附带视频教程(BV1vW4y1p7st)帮助快速上手。
308 0
|
11月前
|
机器人 API 区块链
emoji大全1
emoji大全
143 0
|
11月前
|
资源调度 Dart Shell
emoji大全2
emoji大全
173 0
|
架构师 iOS开发
iOS Emoji 表情的过滤及非法字符
iOS Emoji 表情的过滤及非法字符
144 1
Markdown语法和表情
Markdown语法和表情
86 0
[Emoji cheat sheet]写博客时会使用的Emoji可爱表情符号
[Emoji cheat sheet]写博客时会使用的Emoji可爱表情符号
|
Web App开发 编解码 JavaScript
关于 Emoji 你不知道的事
关于 Emoji 你不知道的事
993 0