我必须重新设计一个类,其中(其中包括)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)
任何其他解决方案/最佳实践?