欢迎来到天天文库
浏览记录
ID:53872036
大小:58.50 KB
页数:2页
时间:2020-04-10
《centos 7 mysql库支持emoji表情存储.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、java.sql.SQLException:Incorrectstringvalue:'xF0x9Fx92x94'forcolumn'name'atrow1atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)atcom.m
2、ysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)atcom.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)atcom.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)atcom.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662)atcom.mysql.jdbc.StatementImpl.ex
3、ecuteUpdate(StatementImpl.java:1581) 当报以上错误的时候,可能是java代码中的字段与数据库中的字段类型或者编码不匹配,这种情况只要统一格式或者编码就就可以了。这里主要介绍emoji的图像插入数据库的错误以及解决方法 使用mysql数据库的时候,如果字符集是UTF-8并且在java服务器上,当存储emoji表情的时候,会抛出以上异常(比如微信开发获取用户昵称,有的用户的昵称用的是emoji的图像)这是由于字符集不支持的异常,因为utf-8编码有可能是两个,三个,四个字节,其中Emoji表情是四个字节,而m
4、ysql的utf-8编码最多三个字节,所以导致数据插不进去。解决方式:一.从数据库层面进行解决(mysql支持utf8mb4的版本是5.5.3+,必须升级到较新版本)注意:(1.修改database,table,column字符集ALTERDATABASEdatabase_nameCHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ci;ALTERTABLEtable_nameCONVERTTOCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;alterTABLEt
5、_wxuserMODIFYnicknamevarchar(500)CHARACTERSETutf8mb4COLLATEutf8mb4_general_ci; (2.修改mysql配置文件my.cnf(window为my.ini)找到my.cnf配置文件如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件init-connect='SETNAMESutf8mb4'character-set-server=utf8mb4 (3.用的是java服务器,升级或者确保mysqlconnection版
6、本高于5.1.13否则仍然不能试用utf8mb4(4.服务器端的db配置文件jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUEjdbc.username=rootjdbc.password=password
此文档下载收益归作者所有