gpt4 book ai didi

mysql - 错误的字符串值 : '\\xA0Consu...' for column even though column has utf8mb4 encoding

转载 作者:行者123 更新时间:2023-11-29 15:45:21 25 4
gpt4 key购买 nike

我正在运行 python 脚本以在表中插入记录。我正在从包含带有特殊字符的单元格的电子表格中读取数据。

在我的脚本中,我在执行以下命令之前运行以下命令:

SET NAMES utf8mb4;
SET CHARACTER SET utf8mb4;
SET character_set_connection=utf8mb4;
SET collation_connection = utf8mb4_unicode_ci;

这是我的表结构:

CREATE TABLE `staging` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`d_date` date NOT NULL,
`m_date` date NOT NULL,
`market` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'US',
`cola` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
`colb` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=265 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

表编码:UTF8MB4表排序规则:UTF8MB4_UNICODE_CI

环境变量:

显示像“%collat​​ion%”这样的变量;

collation_connection    latin1_swedish_ci
collation_database utf8mb4_unicode_ci
collation_server utf8mb4_unicode_ci

显示像“%char%”这样的变量;

character_set_client    latin1
character_set_connection latin1
character_set_database utf8mb4
character_set_filesystem binary
character_set_results latin1
character_set_server utf8mb4
character_set_system utf8
character_sets_dir /usr/local/mysql-5.7.20-macos10.12-x86_64/share/charsets/

查询:

insert into staging (d_date, m_date, market, cola, colb ) 
values ('2019-07-18', '2019-07-01', 'US', 'ARCA', 'Sodius\xa0Consumer Auto');

错误:

_mysql_exceptions.OperationalError: (1366, "Incorrect string value: '\\xA0Consu...' for column 'colb' at row 1")

预期结果是应将行插入到数据库中。

最佳答案

这表示客户端中的编码是 UTF-8:SET NAMES utf8mb4;

这表示客户端中的编码是latin1:\xa0

这表示,无论客户端有什么,cola 都将编码为 UTF-8:cola varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL

这些表明您执行了SET NAMES latin1:

character_set_client    latin1
character_set_connection latin1
character_set_results latin1

如果您确实想要 \xA0 (硬空格),那么客户端中的整个文本也必须是 latin1,并且您必须说 SET NAMES latin1 (或... -- 有几种方法可以做到这一点)。

如果您不关心使用什么类型的空间,那就使用简单的空间。

如果客户端的其余部分正在使用 UTF-8,并且您想要一个“不间断空格”,则使用 \xc2a0(UTF-8 编码)。

关于mysql - 错误的字符串值 : '\\xA0Consu...' for column even though column has utf8mb4 encoding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57119364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com