转载 

pymysql.err.InternalError: Incorrect string value: '\\xF0\\x9 报错 网上方法都没用,最终解决办法

分类:python,Mysql    718人阅读    IT小君  2021-09-03 22:28

这是字符编码问题

1.网上有一种解决方法是:

   直接将数据库的编码改为:utf8mb4_general_ci,同时Python代码里,连接数据库时用

charset="utf8mb4"

不过,,这种方法对我的程序不起作用。。


2.另一种方法(有效): 

 执行sql语句: ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4; 

 再将Python代码里,连接数据库时用charset="utf8mb4" 真棒!!


上面两种方法,其实是有区别的。

  • 采用方法一,如果遇到某个列字符集转换完后字节数超限了,会提示错误。

  • 而采用方法二,如果遇到某个列字符集转换完后字节数超限了,则会将这个列数据类型转换成可以容纳更大长度的类型,比如从 TEXT 转成 LONGTEXT 等。


编码区分可参考: 

What is the difference between utf8mb4 and utf8 charsets in MySQL?

支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

 工具推荐 更多»