一尘不染

如何修复双编码的UTF8字符(在utf-8表中)

mysql

LOAD DATA INFILE在对CSV文件进行latin1编码的假设下运行了以前的文件。在此导入过程中,将多字节字符解释为两个单个字符,然后再次使用utf-8进行编码。

这种双重编码会产生类似的异常,ñ而不是ñ

如何更正这些字符串?


阅读 300

收藏
2020-05-17

共1个答案

一尘不染

下面的MySQL函数在双重编码后将返回正确的utf8字符串:

CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)

它可以与UPDATE语句一起使用以更正字段:

UPDATE tablename SET
    field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);
2020-05-17