错误事件:

在使用mysql数据库插入数据时,再遇到表情符号的时候,会报错。
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8E\\xB5\\xE9\\x9F...'
原因是因为我在navicat建立数据库的时候使用的utf8字符集
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8E\\xB5\\xE9\\x9F...'
所以表结构在创建的时候也会默认为utf8字符集。

所以需要特殊的表情符号时,无法存入数据库。

解决办法

注意:直接在navicat中修改表结构的字符集和数据库的字符集都不能生效 (至少我的不行)

通过cmd进入mysql,找到表结构,修改表结构字符集为utf8mb4

使用命令行: altor table 表名 convert to character set utfmb4;
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8E\\xB5\\xE9\\x9F...'
修改完成后,插入正常。
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8E\\xB5\\xE9\\x9F...'

补充

1、有资料说进入my.ini修改mysql配置,实测无效

2、强调一遍,不要偷懒直接用可视化工具修改

3、如果改了mysql的配置,尝试重启服务器,如果启动不了,就改回去

相关文章:

  • 2021-05-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-09
  • 2022-12-23
  • 2022-12-23
  • 2021-10-04
猜你喜欢
  • 2022-12-23
  • 2021-05-11
  • 2021-08-19
  • 2021-05-17
  • 2022-12-23
相关资源
相似解决方案