更改表转换为使用latin1

时间:2018-04-13 13:08:32

标签: mysql character-encoding

我需要做我在这里做的整张桌子:

UPDATE users SET name = CONVERT(CAST(convert(name using  latin1) as BINARY) USING utf8);

如何使用ALTER TABLE查询执行此操作?

2 个答案:

答案 0 :(得分:0)

假设columnA被定义为VARCHAR(25)CHARACTER SET latin1然后您可以将其更改为utf8,以便它可以使用以下语言从不同语言中获得不同的值:

  ALTER TABLE yourTable MODIFY columnA VARCHAR(25) CHARACTER SET utf8;

答案 1 :(得分:0)

首先,确保这是正确的解决方法。

如果我没弄错的话,你试图撤消“双重编码”?

请参阅此症状:Trouble with UTF-8 characters; what I see is not what I stored

请参阅此处了解修正适用的位置:http://mysql.rjweb.org/doc.php/charcoll#fixes_for_various_cases

CHARACTER SET utf8mb4 with double-encoding:

UPDATE tbl SET col = CONVERT(BINARY(CONVERT(col USING latin1)) USING utf8mb4);

转储表格,将其加载到其他地方,运行转化,测试结果,尤其是获取SELECT col, HEX(col) ...