sqlalchemy(1366,“不正确的字符串值:'\\xb4\\xeb\\xc7\\xd1\\xb9\\xce…'用于第484行的'variable\u value'列”)

9avjhtql  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(413)

(1366,“不正确的字符串值:'\xb4\xeb\xc7\xd1\xb9\xce…'用于第484行的'variable\u value'列)
每当我尝试插入一行(对于anytable)但没有任何包含“variable\u vaule”列的表时,就会发生此错误。

SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('VARIABLE_VALUE')
    AND TABLE_SCHEMA='sw';  /* nothing comes up */

如何定位导致警告的表?

6ovsh4lw

6ovsh4lw1#

用于unicode的编码传统上是“utf8”。但是,对于forward上的mysql版本5.5.3,引入了一个新的mysql特定编码“utf8mb4”,从mysql 8.0开始,如果在任何服务器端指令中指定了纯utf8,则服务器将发出警告,并替换为utf8mb3。这种新编码的基本原理是因为mysql的传统utf-8编码只支持最多3个字节的码点,而不是4个字节。因此,当与包含超过三个字节大小的代码点的mysql数据库通信时,如果数据库和客户端dbapi都支持,则首选此新字符集,如:

e = create_engine(
    "mysql+pymysql://scott:tiger@localhost/test?charset=utf8mb4")
All modern DBAPIs should support the utf8mb4 charset.

在此处输入链接说明

3z6pesqy

3z6pesqy2#

发生此错误的原因是您试图使用错误的字符集存储表情符号。更改字符集 utf8utf8mb4

相关问题