mysql测试emoji表情_让Mysql支持Emoji表情

最近在做一个项目,我负责后端,Java开发,DB用的是Mysql,版本5.6.14 ,编码用的是UTF-8。但发现了一个问题,手机端上有Emoji表情,插入Mysql时失败了,报错添加表情失败~;

上百度搜索一下,终于找到了答案。UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。解决方案就是:将Mysql的编码从utf8转换成utf8mb4。网上应该能搜到一大堆修改Mysql编码的方法。

我是这样修改的:

1.utf8mb4的最低mysql版本支持版本为5.5.3+,若不是,请升级到较新版本。

mysql版本查看命令请看:

mysql> select version();

--------------

select version()

--------------

+-----------+

| version() |

+-----------+

| 5.6.14    |

+-----------+

1 row in set (0.00 sec)

mysql安装步骤请看:http://blog.csdn.net/catshitone/article/details/47975961; Linux中升级Mysql到Mysql最新版本的方法

2.修改database、table和column字符集。参考以下语句:

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

ALTER TABLE table_name CHANGE column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3.修改mysql配置文件my.cnf(windows为my.ini)

my.cnf一般在etc/mysql/my.cnf位置。找到后请在以下三部分里添加如下内容:

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4'

2,先去修改表字段字符集为utf8mb4:  ALTER TABLE UGC_REVIEW_CONTENT MODIFY `CONTENT` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '评论内容'; 执行完后,再在手机端的app测试,依然报同样的错误。 3,再去修改表字符集utf8mb4: ALTER TABLE UGC_REVIEW_CONTENT  CHARSET=utf8mb4 COMMENT='晒单/推荐的评论内容'; 执行完后,再在手机端的app测试,依然报同样的错误。 4,再去修改数据库的字符集utf8mb4:  vim my.cnf init-connect='SET NAMES utf8mb4' character-set-server=utf8mb4 重启mysql数据库 [root@mysqlvm4 ~]# service mysql restart Shutting down MySQL....                                    [确定] Starting MySQL.............................................[确定].. [root@mysqlvm4 ~]# --------------------------------------------------------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值