先直接说两种解决方法,第一种比较烦(其实也没有很烦),第二种简单
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
my.cnf.png修改红线标的就好了
返回主目录
cd ~
重启mysql
service mysqld restart
测试发现完成咯!
app界面.png
网友评论