+ 我要发布
我发布的 我的标签 发现
浏览器扩展
斑点象@Edge

Python3 连接数据库 MySQL8 时报错:(pymysql.err.DataError) (1366, "Incorrect string value: '\\x...

背景:在处理 emoji 时,报错1366, 原因:编码问题 分析及解决方案: 在MySQL8里,字符集默认就是 utf8mb4,已支持emoji Python3默认就是utf8 原因就出在两个字符集 utf8mb4 和 utf8 上。utf8mb4是utf8的超集,mb4是most bytes 4的意思,专门用来兼容四字节的unicode。 处理emoji时需要字符集支持unicode,utf8mb4是没问题的,但是utf8不行。 只需要将python连接mysql的默认格式由utf8改为utf8mb4就可以了,连接数据库如下: 'mysql+pymysql://root:123456@localhost:3306/test?charset=utf8mb4'
我的笔记