mysql - SqlAlchemy(1366,“不正确的字符串值:'\\xB4\\xEB\\xC7\\xD1\\xB9\\xCE...' 列 'VARIABLE_VALUE' 在第 484 行”)
问题描述
(1366,“第 484 行的列 'VARIABLE_VALUE' 的字符串值不正确:'\xB4\xEB\xC7\xD1\xB9\xCE...'”)
每当我尝试插入一行(对于任何表)时都会发生此错误但我没有任何包含“VARIABLE_VAULE”列的表。
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('VARIABLE_VALUE')
AND TABLE_SCHEMA='sw'; /* nothing comes up */
如何找到导致警告的表?
解决方案
传统上用于 Unicode 的编码是“utf8”。然而,对于 MySQL 5.5.3 版本,引入了新的 MySQL 特定编码“utf8mb4”,从 MySQL 8.0 开始,如果在任何服务器端指令中指定纯 utf8,服务器会发出警告,替换为utf8mb3. 这种新编码的基本原理是因为 MySQL 的传统 utf-8 编码只支持最多三个字节而不是四个字节的代码点。因此,当与包含大小超过三个字节的代码点的 MySQL 数据库通信时,如果数据库和客户端 DBAPI 都支持,则首选此新字符集,如下所示:
e = create_engine(
"mysql+pymysql://scott:tiger@localhost/test?charset=utf8mb4")
All modern DBAPIs should support the utf8mb4 charset.
推荐阅读
- vue.js - 如何在 Vue 的 v-model 中使用 Bootstrap 按钮组收音机?
- azure-devops - How to run pipeline from other pipeline?
- linux - CentOS 7 + Lighttpd,Web 服务器无法正常运行
- webdriver-io - CucumberJs cannot find steps using webdriverio5
- swift - Hiding Dividers in NSSplitView
- jquery - pulling objects from an array within an array
- c# - 如何在单击previous_button单击事件时返回gridview中的上一行
- skeletal-animation - C# SFML 2D 中的骨骼动画
- sql-server - 使用 select 语句作为存储过程的输入。T-SQL
- python - 无法从转换后的冻结集合 python 3 中获取值