解决微信昵称含特殊表情或字符无法存入数据库异常
2018-02-12 14:05
337 查看
场景描述:
保存微信用户昵称,发现昵称中包含特殊表情或字符,导致以下异常Caused by: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x90\xAF’ for column ‘nickName’ at row 1
运行环境:
JAVA JDK 1.8MYSQL 5.7
TOMCAT 8.5
WINDOWS
定位问题:
我的数据库编码为UTF8,MYSQL的UTF8编码最多3个字节,EMOJI表情或者某些特殊字符的编码是4个字节,导致存入数据库时发生了异常。解决步骤:
修改该字段的编码格式:ALTER TABLE t_game_player CHANGE nickName nickName VARCHAR(255) CHARACTER SET utf8mb4;修改数据库的编码格式
数据库安装在WINDOWS上>>>
在数据库根目录下找到my.ini(5.7版本好像默认是没有这个配置文件,可以自己创建一个),添加一行:character-set-server=utf8mb4,最后重启数据库就解决这个问题了。
购买阿里云的RDS-MYSQL>>>
进入数据库实例管理页面,有个参数管理,修改参数:character_set_server
测试步骤:
进入微信公众号后台,获取特殊表情,再将这个表情内容发到服务端,可以使用postman模拟调用。将表情获取之后,存入数据库,测试通过。
相关文章推荐
- 解决微信登录时昵称中包含特殊字符,不能存入数据库问题
- 解决微信昵称特殊字符存放数据库报错问题
- 解决四个字节的字符无法存入数据库
- 微信昵称emoji表情,特殊表情导致列表不显示,导出EXCEL报错等问题解决!
- java ipone 微信昵称emoji表情保存失败 无法存入数据库
- java ipone 微信昵称emoji表情保存失败 无法存入数据库
- java ipone 微信昵称emoji表情保存失败 无法存入数据库
- php解决微信开发中用户昵称中的特殊字符与emoji表情写入mysql错误的问题
- Qt解决QUrl含有中文或特殊字符无法下载的问题
- 解决Ubuntu16.04下MySQL Workbench无法通过SSH隧道转发连接数据库异常
- Oracle用户密码含有特殊字符导致无法登陆解决方法
- 解决ASP.NET连接Oraclei数据库出现"无法加载DLL(oci.dll)"异常
- 如何解决java.sql.Statement无法处理特殊字符以及容易被黑问题
- 关于XhsEmoticonsKeyboard仿微信表情键盘,某些情况下输入字符崩溃问题解决办法
- 数据库查询中遭遇特殊字符导致问题的解决方法
- 微信昵称特殊字符存储 PHP MYSQL
- sqlalchemy 链接数据库,指定编码,解决密码含有特殊字符
- 解决Axis2在webservice中遇到特殊字符的无法传输的缺陷(<CDATA>数据类型)
- sql: 去除数据库表中tab、空格、回车符等特殊字符的解决方法 去除tab、空格、回车符等使用replace语句 按照ASCII码, SELECT char(64) 例如64 对应 @,则se
- mysql保存微信昵称特殊字符的方法