У меня есть веб-форма, написанная на Perl, которая сохраняет пользовательский ввод на нескольких языках в базу данных MySQL. Хотя он прекрасно работал, сохраняя и отображая все символы без проблем, в PHPMyAdmin символы всегда отображаются с ошибками. Однако я проигнорировал это, поскольку веб-сайт отображал символы ОК.
Теперь я только недавно переместил веб-сайт на VPS, и база данных, по-видимому, ввела в действие кодировку ut8mb4, поэтому теперь она отображает ошибки символов на сайт. Я не эксперт и считаю всю область кодирования довольно запутанной. Мой вопрос: как я могу:
а) определить, как мои данные на самом деле кодируются в моей таблице?
б) правильно преобразовать их в utf8mb4, чтобы они правильно отображались в PHPMyAdmin и на моем веб-сайте?
На всех HTML страницах используется объявление charset=utf8
. MySQL соединение использует mysql_enable_utf8 => 1
. Таблица в моей исходной базе данных была установлена на utf8_general_ci
сопоставление. Исходная сортировка базы данных (я только что заметил) была установлена на latin1_swedish_ci
. Новая база данных И таблица сопоставлений utf8mb4_general_ci
. Заранее спасибо.