mysql表情存储报错问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql表情存储报错问题相关的知识,希望对你有一定的参考价值。
mysql采用utf-8字符编码,但在移动端使用输入法的表情并存储数据库的时候,出现错误。
java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\x94‘...
经排查,原因在于utf-8编码无法存储表情字符。
解决步骤:
- 更改数据库编码为utf8mb4和utf8mb4_unicode_ci
- 更改所需要存储表情的那张表的编码为utf8mb4和utf8mb4_unicode_ci
- 更改表中存储的那个字段的编码为utf8mb4和utf8mb4_unicode_ci
- 项目的数据库连接properties资源文件把URL的编码参数去掉
经过以上的操作,表情可以存储到数据库了,但是出现问题是全部变成了??乱码 - 修改mysql配置文件my.cnf(windows为my.ini,linux为my.cnf)
my.cnf一般在etc/mysql/my.cnf位置。找到后请在以下三部分里添加如下内容:
[client]
default-character-set = utf8mb4
[MySQL]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=‘SET NAMES utf8mb4‘
- 重启mysql数据库,重新查看字符集
经过5、6两个步骤,最后成功存储表情,并且查询显示也是可以的。
以上是关于mysql表情存储报错问题的主要内容,如果未能解决你的问题,请参考以下文章
mysql存储emoji表情报错的处理方法更改编码为utf8mb4
Mysql存储emoji表情报错(Incorrect string value: 'xF0x9Fx98x82xF0x9F...')的解决方案
MySQL存储emoji表情报错(Incorrect string value: 'xF0x9Fx98x82xF0x9F...')的解决方案