Мне нужно перепроектировать класс, где (между прочим) строки UTF-8 ошибочно закодированы:
$string = iconv('ISO-8859-1', 'UTF-8', $string);
:
$string = utf8_encode($string);
Эти ошибочные строки были сохранены в несколько табличных полей по всей базе данных MySQL. Во всех затронутых областях используется сопоставление utf8_general_ci
.
Обычно я настраивал небольшой PHP-патч script, зацикливая через затронутые таблицы, ВЫБОР записей, исправлял ошибочные записи, используя utf8_decode()
в двойных кодированных полях и ОБНОВЛЯЯ их.
Поскольку на этот раз у меня много и больших таблиц, и ошибка затрагивает только немецкие умляуты (äöüßÄÖÜ), мне интересно, есть ли решение умнее/быстрее.
Являются ли чистые решения MySQL безопасными и рекомендуемыми?
UPDATE `table` SET `col` = REPLACE(`col`, 'ä', 'ä');
Любые другие решения/лучшие практики?