MySQL конвертирует кодировку

У меня есть приложение, которое работает на PHP 5 и обращается и хранит базу данных MySQL, используя расширение mysqli . База данных содержит множество таблиц с кодировкой UTF-8 (сортировка utf8_swedish_ci ).

К сожалению, похоже, что соединение mysqli было настроено на кодирование всего, используя ISO-8859-1, что означает, что у меня есть таблицы UTF-8, содержащие данные latin1 . Я пытаюсь восстановить это сейчас, переместив все на UTF-8 (как и должно быть!)

Есть ли встроенный способ обработки этого? Если этого не произойдет, как бы вы порекомендовали мне подойти к этой проблеме?


Изменить: пример того, как выглядят данные при просмотре всего с помощью PHPMyAdmin:

handelë (должно быть handelë )

√skal (должен быть √skal )

Кроме того, данные выводятся корректно в документе HTML, если я использую выходную кодировку UTF-8, но поддерживаю кодировку соединений mysqli как latin1. Все это довольно запутанно.

Очень благодарен за вашу помощь!

    Отлично! Так вот что должно было случиться:

    пользовательский интерфейс (UTF-8) → контроллер (UTF-8) → модель (ISO-8859-1) → база данных (UTF-8, но она принимает ISO-8859-1)

    Поэтому поля были настроены на использование кодировки UTF-8, но они получают ISO-8859-1 кодированные данные. Я хотел преобразовать неправильно кодированные данные в UTF-8.

    Поскольку данные были фактически кодированы ISO-8559-1, я решил свою проблему со следующим небольшим «взломом» MySQL:

     UPDATE `table` SET `column` = convert(cast(convert(`column` using latin1) as binary) using utf8) 

    Предоставлено ABS на StackOverflow.

    Спасибо, что посмотрели мою проблему, ребята! 🙂