gpt4 book ai didi

mysql - Mysql中使用HEX()转换字符编码

转载 作者:行者123 更新时间:2023-11-29 03:37:35 30 4
gpt4 key购买 nike

我有一列使用 latin1 字符编码。谁能解释为什么会这样?

当我运行时:

SET NAMES utf8;
SELECT unhex(convert(hex(text) USING utf8)) FROM translation_target

我可以正确显示字符。

当我运行时:

SET NAMES utf8;
SELECT text FROM sanus2013_dev1.translation_target;

我得到损坏的字符:

所以我想如果我运行这样的东西:

UPDATE translation_target SET text = unhex(convert(hex(text) USING utf8));

我可以使用:

SET NAMES utf8;
SELECT text FROM sanus2013_dev1.translation_target;

并查看正确的字符编码。谁能解释为什么这不起作用?

编辑:列 translation_target 具有 CHARACTER SET latin1COLLATE latin1_swedish_ci

不确定这是否有帮助,但我使用了 ALTER TABLE COLUMN 语句将 CHARACTER SET 更改为 utf8 并将 COLLATION 更改为 utf8_unicode_ci;

运行:

SET NAMES utf8;
SELECT unhex(convert(hex(text) USING utf8)) FROM translation_target;

显示损坏的字符。

当我将字符集和排序规则改回 latin1 时,它再次起作用。

最佳答案

尝试使用这个:

UPDATE translation_target 
SET text=convert(cast(convert(text using latin1) as binary) using utf8)
FROM translation_target;

关于mysql - Mysql中使用HEX()转换字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19190025/

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