java 微信昵称带有emoji 表情乱码

时间:2022-05-19 17:23:38 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
问题描述:ipone5s中昵称输入“emoji 表情”,保存数据库有问题。

运行环境:JavaTomcatmysqlLinux(我的Linux下为乱码,这个是linux问题)

原因:IOS 5.x及以上版本的emoji 表情都是4字节的,mysql里的utf8一个字符最多3节。所以保存不到数据库,会有以下报错:

Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8E\x80\xE5\xA4...' for column 'nickname' at row 1

解决方法:

1. 去掉emoji 表情符(用的这个方法)

2. 修改Mysql数据编码,现在mysqlutf8mb4编码扩展到一个字符最多能有4字节(需

要修改现有的数据库编码,没有使用此方法)

第一种方法:

》去掉emoji 表情符,java类:



》调用代码:EmojiFilter.filterEmoji(昵称);

EmojiFilter.java


本文来源:https://www.wddqw.com/doc/5a1961d8964bcf84b8d57b11.html