带图片的微信用户名称存mysql问题总结

先直接说两种解决方法,第一种比较烦(其实也没有很烦),第二种简单

1.后台对 用户名这个字段进行 加码 存入到mysql 取出来 再解码呈现

我的项目中 是 nickName 字段进行存储微信头像数据的

存数据的时候 进行 编码 将二进制数据编码为可写的字符型数据

String enNickName = Base64.getEncoder().encodeToString(nickName.getBytes("UTF-8"));

从数据库取出来的时候,是加码之后的数据,所以要 解码

String deNickName = new String(Base64.getDecoder().decode(nickName), "UTF-8");

将此时的deNickName返回给前端,就会正常显示啦。

2.直接对mysql的编码进行修改

第一坑:
把数据库中 nick_name 字段的字符集 改为 utf-8mb4
测试之后发现没用!没用!没用!

第二坑:
把数据库中表 的字符集改为 utf-8mb4
也没用!没用!没用!
把此数据库的字符集改为 utf-8mb4
都没用!没用!没用!

解决:
需要修改 my.cnf 这个文件里面的字符集设置
这个文件在linux 下一般在 /etc/my.cnf

vi /etc/my.cnf

修改[client] [mysqld] 下面的字符为utf-8mb4

带图片的微信用户名称存mysql问题总结_第1张图片
my.cnf.png

修改红线标的就好了

返回主目录
cd ~

重启mysql
service mysqld restart

测试发现完成咯!

app界面.png

你可能感兴趣的:(带图片的微信用户名称存mysql问题总结)