相关疑难解决方法(0)

如何纠正MySQL utf8_general_ci字段中的双编码UTF-8字符串?

我必须重新设计一个类,其中(其中包括)UTF-8字符串被错误地双重编码:

$string = iconv('ISO-8859-1', 'UTF-8', $string);
:
$string = utf8_encode($string);
Run Code Online (Sandbox Code Playgroud)

这些错误的字符串已保存到MySQL数据库的多个表字段中.受影响的所有字段都使用整理utf8_general_ci.

通常我会设置一个小的PHP补丁脚本,循环通过受影响的表,选择记录,通过使用utf8_decode()双编码字段更正错误记录并更新它们.

因为这次我得到了很多很大的桌子,这个错误只会影响德国变音符号(äöüßÄÖÜ),我想知道是否有更智能/更快的解决方案.

纯粹的MySQL解决方案是否安全且值得推荐?

 UPDATE `table` SET `col` = REPLACE(`col`, 'ä', 'ä');
Run Code Online (Sandbox Code Playgroud)

任何其他解决方案/最佳实践?

php mysql utf-8

14
推荐指数
3
解决办法
1万
查看次数

标签 统计

mysql ×1

php ×1

utf-8 ×1