zoukankan      html  css  js  c++  java
  • MYSQL插入emoji报错解决方法Incorrect string value

    MYSQL插入emoji表情时,会出现Incorrect string value的错误
    将对应列的字符集改成utf8mb4

    Caused by: java.sql.SQLException: Incorrect string value: 'xF0x9Fx98x84' for column 'review' at row 1
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
    

    原因:

    UTF-8编码的字符可以时2个、3个、4个直接。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。

    解决方案:

    将Mysql的编码从utf8转换成utf8mb4。

    操作:

    1. 检查数据库编码设置

    SHOW VARIABLES LIKE '%character%';
    

    如果不是以上配置,修改mysql配置文件(windows:my.ini;linux:my.cnf)

    character-set-server = utf8mb4
    

    2. 重启mysql

    3. 将数据库表编码转换成utf8mb4

    ALTER TABLE "TABLE_NAME" CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    

    4. 将需要使用emoji的字段设置类型为

    ALTER TABLE "TABLE_NAME" MODIFY COLUMN "COLUMN_NAME"  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    

    参考连接:https://www.jianshu.com/p/a424a9b278d9

  • 相关阅读:
    十个MySQL常用函数
    写给三十岁的自己
    EJS 模板引擎
    发送HTTP请求(GET,POST)
    路由模块化
    原生NodeJS封装Express路由
    Hook简介
    State Hook (useState)
    Effect hooks
    useContext
  • 原文地址:https://www.cnblogs.com/proper128/p/13156044.html
Copyright © 2011-2022 走看看