从双编码 UTF8 字符中恢复
之前使用 LOAD DATA INFILE 导入的数据被错误地假定为以 Latin1 编码。因此,多字节字符被拆分为单独的字节,随后以 UTF8 进行编码,从而产生双重编码。这会导致字符损坏,例如“à±”而不是“ñ”。
要纠正这些错误,可以使用特殊的 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);
通过执行此语句,数据库将用正确的 UTF8 对应项替换双编码值,从而解决字符异常。
以上是如何修复 MySQL 中的双编码 UTF8 字符?的详细内容。更多信息请关注PHP中文网其他相关文章!