1,emoji介绍
(1)
emoji 就是表情符号,来自日语词汇“絵文字”(假名为“
えもじ”,读音即
emoji)。
(2)最早由栗田穰崇(Shigetaka Kurita)创作,并在日本网络及手机用户中流行。 自苹果公司发布的
iOS 5 输入法中加入了
emoji 后,这种表情符号开始席卷全球。
(3)目前
emoji 已被大多数现代计算机系统所兼容的
Unicode 编码采纳,普遍应用于各种手机短信和社交网络中。
2,问题描述
最近使用
MySQL 作为一个移动应用的数据库。但是不管使用
Anroid 设备,还是
iOS 设备。只要插入包含有
emoji 表情符号的记录时就报错。
3,问题原因
MySQL 我使用的是默认的
utf8 编码,
UTF8 编码只支持
1-3 个字节。而
emoji 占有
4 个字节的存储空间,所以自然保存不了。
从
MYSQL5.5 开始,可支持
4 个字节
UTF 编码,只要将编码标记成
utf8mb4 即可。并且
utf8mb4 是兼容
utf8 的。
4,解决办法
(1)打开
MySQL 配置文件。(
Windows 下是
my.ini,
Linux 下是
my.cnf)
(2)修改如下配置,将编码改成
utf8mb4。
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
init-connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
init-connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
(4)再次执行代码,可以发现包含
emoji 符号的记录已经可以成功插入到数据库了。
注意:
由于我们在前面
MySQL 配置文件中已经设置了数据库连接的默认编码是
utf8mb4,所以代码这边不用再设置。如果代码这边原来有设置编码,将其去掉或者改成
utf8mb4。以
PHP 代码为例:
1
|
mysqli_set_charset(
$con
,
'utf8mb4'
);
//或者直接去掉
|
原文出自: www.hangge.com 原文链接: http://www.hangge.com/blog/cache/detail_1411.html