MDr*_*mer 2 mysql casting utf-8
我在 MySql 5 DB 上有一张表。该表包含的数据不是有效的 UTF-8 / UTF8。
该字段的数据类型为LONGTEXT.
以下是此类数据的示例:
receiver?àùs
Run Code Online (Sandbox Code Playgroud)
我尝试通过多种方式转换和更改字符集:
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;
Run Code Online (Sandbox Code Playgroud)
在我更改表格后,我尝试从包含该数据的另一个表格重新加载它,但它没有改变......它看起来像“接收器?àùs”而不是 UTF 8 字符。
我怎样才能转换它?
这解决了我的问题:
select convert(binary convert(`Table1`.`col1` using latin1) using utf8)
FROM `Table1`
Run Code Online (Sandbox Code Playgroud)
后来我更新了表格 - 我丢失了一些数据,但我不介意。大部分都留下了。
更新查询如下:
Update Table1
Set col1 = convert(binary convert(col1 using latin1) using utf8)
Run Code Online (Sandbox Code Playgroud)