问题描述:ipone5s中昵称输入“emoji 表情”,保存数据库有问题。
运行环境:Java、Tomcat、mysql、Linux(我的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数据编码,现在mysql中utf8mb4编码扩展到一个字符最多能有4字节(需要修改现有的数据库编码,没有使用此方法)。
第一种方法:
》去掉emoji 表情符,java类:
》调用代码:EmojiFilter.filterEmoji(“昵称”); EmojiFilter.java
《java 微信昵称带有emoji 表情乱码.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档