mysql中插入emoji报错

发布时间 2023-11-13 15:46:40作者: 妞妞猪

因为项目使用了微信登录,所以会拉取微信用户信息保存到本地数据库中,以前一直没啥问题,今天有个用户就是登不上,其他人都是可以正常登录的,结果查了一下发现他的用户名称有emiji,解决办法还算挺多的

1.将数据库的utf8编码转换成utf8mb4的编码

2.判断emoj进行阶段,只取汉字

3.第三方依赖包emoji-java

等等

刚开始我是尝试了第一个方法,在本地是可以的,但是由于服务器上mysql版本太低无法支持,所以我就尝试了一下第三种方法

先是pom里引入依赖

<dependency>
  <groupId>com.vdurmont</groupId>
  <artifactId>emoji-java</artifactId>
  <version>3.2.0</version>
</dependency>

然后把微信种的昵称信息转义掉变成字符串

String convertEmoji = EmojiParser.parseToAliases(wxUserInfoRO.getNickname());

之后在把转义后的字符串插入mysql

 转义后的字符是这样的,转义前是

 参考 https://blog.csdn.net/qq_36802726/article/details/85321412