MySQL 使用utf8mb4 字符集

俊杰 2018-12-03 PM 1659℃ 0条

项目突然出现说用户提交评论失败了,查看日志,发现
Incorrect string value: 'xF0x9Fx98xAD",...' for column 'source' at row 1
原来是评论内容中有emoji表情,需要4字节 UTF-8 Unicode 编码,而我们通常数据库使用的是utf-8编码,默认是按照三个字节一个单位编码的。
修改以下几点:

  1. 数据库连接字符串删除characterEncoding=utf8

如"jdbc:mysql://localhost:3306/dbname?useunicode=true&characterEncoding=utf8";
修改为"jdbc:mysql://localhost:3306/dbname?useunicode=true";

    1. 修改数据表的字符集
    1. table table_name convert to character set utf8mb4;

      1. 修改数据库配置,在配置文件中加入
        [mysqld]

    character-set-client-handshake = FALSE
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    [mysql]
    default-character-set=utf8mb4
    该文件通常位于 C:/Program Files (x86)/MySql/my.ini(windows) 或my.cnf(linux)
    改完保存并重启mysql。

    标签: none

    非特殊说明,本博所有文章均为博主原创。

    评论啦~