本文主要是介绍mysql存储emoji表情报错处理,qq互联mysql存储昵称中带表情的数据时报错。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
做qq互联登录时发现一个问题,如果qq昵称中有表情时存入mysql数据库会报错。
java.sql.SQLException: Incorrect string value: "ð" for colum n "name" at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581)
原因是:mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情。但是utf8的超集utf8mb4一个字符最多能有4字节,所以能支持emoji表情的存储。
参考地址:https://www.wanpishe.top/detail?blogId=1f422a92-a957-4132-a405-a702484490b6
这篇关于mysql存储emoji表情报错处理,qq互联mysql存储昵称中带表情的数据时报错。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!