mysql表情存储报错问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql表情存储报错问题相关的知识,希望对你有一定的参考价值。

mysql采用utf-8字符编码,但在移动端使用输入法的表情并存储数据库的时候,出现错误。

java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\x94‘...

经排查,原因在于utf-8编码无法存储表情字符。

解决步骤:

  1. 更改数据库编码为utf8mb4和utf8mb4_unicode_ci
  2. 更改所需要存储表情的那张表的编码为utf8mb4和utf8mb4_unicode_ci
  3. 更改表中存储的那个字段的编码为utf8mb4和utf8mb4_unicode_ci
  4. 项目的数据库连接properties资源文件把URL的编码参数去掉
    经过以上的操作,表情可以存储到数据库了,但是出现问题是全部变成了??乱码
  5. 修改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‘

  6. 重启mysql数据库,重新查看字符集

    经过5、6两个步骤,最后成功存储表情,并且查询显示也是可以的。






以上是关于mysql表情存储报错问题的主要内容,如果未能解决你的问题,请参考以下文章

MySQL存储emoji表情报错该怎么解决?

MySql数据库存储emoji表情报错解决办法

mysql存储emoji表情报错的处理方法更改编码为utf8mb4

Mysql存储emoji表情报错(Incorrect string value: 'xF0x9Fx98x82xF0x9F...')的解决方案

让MySql支持Emoji表情存储

MySQL存储emoji表情报错(Incorrect string value: 'xF0x9Fx98x82xF0x9F...')的解决方案