1300, "无效的 utf8mb4 字符串:'\\xE2\\x96\\x88\\xE2\\x96\\x88

Posted

技术标签:

【中文标题】1300, "无效的 utf8mb4 字符串:\'\\\\xE2\\\\x96\\\\x88\\\\xE2\\\\x96\\\\x88【英文标题】:1300, "Invalid utf8mb4 character string: '\\xE2\\x96\\x88\\xE2\\x96\\x881300, "无效的 utf8mb4 字符串:'\\xE2\\x96\\x88\\xE2\\x96\\x88 【发布时间】:2018-06-18 02:55:26 【问题描述】:

我在 charset 和 db 列中设置了 utf8mb4,但在使用 pymysql 存储信息时出现此警告。在每次 INSERT 之前,我都会执行以下操作:

cursor.execute('SET NAMES utf8mb4')
cursor.execute('SET CHARACTER SET utf8mb4')

它会停止查询,但会发出警告而不插入记录。我该如何解决。连接设置如下:

connection = pymysql.connect(host=host,
                                     user=user,
                                     password=password,
                                     db=db_name,
                                     autocommit=True,
                                     charset='utf8mb4',
                                     cursorclass=pymysql.cursors.DictCursor)

【问题讨论】:

【参考方案1】:

尝试以下方法:

    对列使用COLLATE utf8mb4_general_ci 对列使用varchar(size) 数据类型而不是TEXT 读取时不要使用str(column),使用x.encode('utf-8')decode('utf-8')

【讨论】:

以上是关于1300, "无效的 utf8mb4 字符串:'\\xE2\\x96\\x88\\xE2\\x96\\x88的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 4,Postgres - 在运行教义命令时`参数“client_encoding”的无效值:“utf8mb4”`

SQLAlchemy 报告 BINARY 列的“无效的 utf8mb4 字符串”

将laravel部署到heroku时,参数“client_encoding”的值无效:“utf8mb4”(SQL:从“tablename”中选择*)[关闭]

MySQL phpMyAdmin 无效的 utf8mb4 字符串

如何调试 Etherpad Lite 数据库中 MySQL utf8mb4 列中的无效数据

OperationalError: (2019, ""Can't initialize character set utf8mb4 (path: C:\\mysql\\\\shar