У меня есть веб-приложение PHP с таблицами MySQL, берущими utf8 текст. Я недавно преобразовал данные от latin1 до utf8 наряду с таблицами и столбцами соответственно. Я действительно, однако, забывал использовать mysql_set_charset и последние входящие данные, которые я приму, проник через Подключение mysql как latin1. Я не знаю то, что происходит, когда latin1 входит к utf8 столбцу, но он вызывает некоторые странные проблемы дисплея для объектов как запятая, кавычки, амперсанд, и т.д.
Теперь, когда mysql_set_charset существует, он вытаскивает данные с броскими символами. Какой-либо способ преобразовать latin1-utf8 суп в прямой utf8 теперь, когда у меня есть ресурс соединения с базой данных с помощью корректного набора символов?
Нашел исправление с вашим комментарием. Вот строка SQL, которая, похоже, решила мою проблему.
UPDATE table SET col = CONVERT(CONVERT(CONVERT(col USING latin1) USING binary) using utf8);
Несмотря на то, что столбец имеет формат UTF8, он вынуждает его извлечь данные как latin1, преобразовать в двоичный, преобразовать в utf8 и повторно вставить.