欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL写入用户微信名

程序员文章站 2022-05-21 17:02:14
很简单的需求,将用户微信名写入MySQl即可,但是测试过程中却遇到了问题,微信名中的emoji写入数据库失败。解决步骤如下 1.了解utf8mb4 MySQL从5.5.3版本开始支持utf8mb4编码,默认编码还是utf8。目前最新的MySQL的默认编码已经改为utf8mb4了,因为utf8可以表示 ......

很简单的需求,将用户微信名写入MySQl即可,但是测试过程中却遇到了问题,微信名中的emoji写入数据库失败。解决步骤如下

 

1.了解utf8mb4

MySQL从5.5.3版本开始支持utf8mb4编码,默认编码还是utf8。目前最新的MySQL的默认编码已经改为utf8mb4了,因为utf8可以表示三字节的unicode,无法表示emoji表情或是特别复杂的汉字这类四字节unicode。理论上原本utf8的字符集修改为utf8mb4是不会有问题的,为了更好的兼容性可以选择utf8mb4。当然,本着节省空间的原则,我们还是可以优先使用utf8。

 

2.修改MySQL数据库

首先查看数据库的字符集,show variables like 'character_set_database';

查询结果为utf8,既然系统已经出现了字符集的兼容性的问题,那干脆改为utf8mb4吧

修改MySQL配置文件my.cnf

[mysqld]

 character-set-server = utf8mb4 

init_connect='SET NAMES utf8mb4'

然后重启MySQL即可

 

3.修改数据表字符集

ALTER TABLE TABLENAME CHARSET=utf8mb4

 

4.修改业务代码

在连接数据库时,一般都显示指定了字符集,需要修改为utf8mb4,charset=utf8mb4