gpt4 book ai didi

mysql - SQL 将列从 Latin1 转换为 UTF8

转载 作者:行者123 更新时间:2023-11-29 00:03:53 24 4
gpt4 key购买 nike

我正在尝试将我的数据库表中的特定列从带有排序规则 latin1_swedish_ci 的 latin1 字符集转换为带有排序规则 utf8_unicode_ci 的 utf8。

COLUMN:描述,类型:longtext,默认不为空

我在列上尝试了以下命令:

ALTER TABLE sample MODIFY description LONGBLOB NOT NULL ;

ALTER TABLE sample MODIFY description LONGTEXT CHARACTER SET utf8 NOT NULL COLLATE utf8_unicode_ci;

我还尝试在不先更改为二进制的情况下更改编码。但是这些字符最终被服务器错误地重新编码。

并且不断收到关于某些字符的错误:

Error Code: 1366. Incorrect string value: '\x92t hav...' for column 'longDesc' at row 803

我表格中的一些字符似乎没有正确转换。

我该如何解决这个问题?

最佳答案

\x92 表示您现在表中有 latin1。第二个 ALTER 声明字节采用 utf8 编码。因此,错误消息。

情况 1:您需要将 LONGTEXT 更改为 utf8,因为您计划添加包含不能用 latin1 编码的文本的行。

对于这种情况,ALTER TABLE sample CONVERT TO CHARACTER SET utf8; -- 转换表中的所有 CHAR/TEXT 列。

ALTER TABLE sample MODIFY description ... CHARACTER SET utf8; -- 转换一列。

案例 2:系统的其余部分正在思考 utf8,并被此列混淆。

嗯,我觉得不糊涂。转换会根据需要发生。

关于mysql - SQL 将列从 Latin1 转换为 UTF8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28420495/

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