如何从MySql列中删除或转换非UTF 8 / UTF-8字符

xlpyo6sf  于 2023-05-28  发布在  Mysql
关注(0)|答案(1)|浏览(273)

我在MySql 5 DB上有一个表。该表包含的数据不是有效的UTF-8 / UTF8。
字段的数据类型为LONGTEXT
以下是此类数据的示例:

receiver?àùs

我尝试了多种方式转换和更改字符集:

ALTER TABLE Table1 CONVERT TO CHARACTER SET utf8;

ALTER TABLE Table1 convert to character set utf8 collate utf8_general_ci;

ALTER TABLE Table1 CHANGE `col1` `col1` LONGTEXT CHARACTER SET utf8;

在我改变了表后,我试图从另一个包含该数据的表重新加载它,但它没有改变…它看起来就像“接收器”?àùs”而不是UTF 8字符。
我如何转换它?

pgky5nke

pgky5nke1#

这解决了我的问题:

select convert(binary convert(`Table1`.`col1` using latin1) using utf8) 
FROM `Table1`

后来我更新了表-我失去了一些数据,但我不介意。大部分都留了下来。
更新查询如下:

Update Table1 
Set col1 = convert(binary convert(col1 using latin1) using utf8)

相关问题