美文网首页程序员
mysql插入emoji表情报 error code [1366

mysql插入emoji表情报 error code [1366

作者: 发条夏 | 来源:发表于2018-12-25 15:16 被阅读0次

    问题:

    今天再插入一条数据的时候,突然报错。

    Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xB0\xE5\xA4...' for column 'username' at row 1 ; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\x9F\x90\xB0\xE5\xA4...' for column 'username' at row 1;

    经过排查发现是因为username的值是带有emoji表情的,像这样:🐰夏大大🐰。

    原因:

    原因是mysql的字符集设置有误。虽然是utf-8,但并不是真正的utf-8,他最多支持3个字节。而utf8mb4才是支持4个字节的编码方式。

    解决方案

    解决方案就是讲相应的字段编码改成utf8mb4,为了避免空间浪费,只改动需要存储emoji的字段即可

    1、修改mysql配置文件/etc/my.cnf 。修改为。character-set-server = utf8mb4

    my.cnf文件

    2、使用命令行或者可视化工具修改字段编码方式

    修改配置文件需要重启生效。至此数据库便支持emoji。

    相关文章

      网友评论

        本文标题:mysql插入emoji表情报 error code [1366

        本文链接:https://www.haomeiwen.com/subject/eueflqtx.html