微信公众号、小程序项目中用户昵称为特殊字符的问题

xu.wang

发布于 2018.09.01 10:29 阅读 2477 评论 0

最近遇到微信公众号和小程序中用户昵称不能插入到数据库的问题。

插入时会报错:

Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\xB5\xF0\x9F...' for column 'mus_real_name' at row 1

解决方法:

1、 向数据库插入昵称时URLEncode.encode(nickname,"utf-8"); 但是取的的时候要注意 URLDecode.decode(user.getNickname,"urf-8");

2、修改数据库的字符集为 utf8mb4

[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4
 
重启mysql服务
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
 
 
 
目前我用的方法为 第一种.