java 插入emoji报错,Incorrect string value: '\xF0\x9F\x93\xB9 |...' for column 'CONTENT' at row 1

发布于 / bug飞 / 0条评论 / Tags: java / 25 次浏览

emoji有些字符是4bytes的,而utf8最多3个字节。所以要使用utf8的超集--utf8mb4
  • 数据库和表配置my.ini

     [mysqld] character-set-server=utf8mb4
    # 表
    ALTER TABLE `TABLE_NAME` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    #字段
    ALTER TABLE `TABLE_NAME`MODIFY COLUMN `COLUMN_NAME`  text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  • 连接串,utf8会自动识别为utf8mb4

    jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE

    评论区(暂无评论)