2

我在 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;

在我更改表后,我尝试从另一个包含该数据的表中重新加载它,但它没有改变......它看起来像“receiver?àùs”而不是 UTF 8 字符。

我怎样才能转换它?

4

1 回答 1

5

这解决了我的问题:

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

后来我更新了表格 - 我丢失了一些数据,但我不介意。大部分都留了下来。

更新查询如下:

Update Table1 
Set col1 = convert(binary convert(col1 using latin1) using utf8)
于 2013-03-23T20:48:06.973 回答