Java Mysql保存Emoji表情存储,好用,来看

最近一直在做微信相关项目,需要在’我的’里显示用户微信头像和昵称,遇到了带有Emoji表情的昵称一直也存不进去,下边说明解决方法.

1.mysql数据库版本在5.5以上,不然是不支持的呦.

我用的是8.0.11,实测5.7.26可食用.
使用以下语句查询数据库版本.

select version();

2.更改数据库,表,以及需要存储emoji的字段编码方式为utf8mb4.

# 对数据库:
ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
# 对表:
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 对存储emoji表情的字段:
ALTER TABLE 表名 CHANGE 字段名 字段名 VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

utf8mb4向下兼容utf8,无乱码或其他数据丢失的形式出现。可以放心修改,不放心的话可以先备份下数据再做修改.

3.修改mysql数据库配置,这里以windows为例.

修改my.ini,添加如下配置

[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'

修改之后以管理员身份打开CMD重新启动mysql.

停止mysql:net stop mysql
启动mysql:net start mysql

4.修改数据库驱动.

这一步也是我研究了小半天的一步,原来项目中使用的一直是mysql-connector-java-5.1.10-bin.jar
一直报错字符串不匹配,灵机一动换了mysql驱动mysql-connector-java-8.0.18.jar,测试,bingo!JAR包就不贴了,Maven就可以弄到.
对了,查了好多教程都说删掉链接里的characterEncoding=utf8,试了一下,加不加都是好用的,所以我还是留着了.

url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
user=root
password=123456
driver=com.mysql.cj.jdbc.Driver

修改到此结束了,重启下项目试试吧,好用了记得点个赞呦~

留个图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值