вставка latin1-закодированного текста в utf8 таблицы (забыл использовать mysql_set_charset),

У меня есть веб-приложение PHP с таблицами MySQL, берущими utf8 текст. Я недавно преобразовал данные от latin1 до utf8 наряду с таблицами и столбцами соответственно. Я действительно, однако, забывал использовать mysql_set_charset и последние входящие данные, которые я приму, проник через Подключение mysql как latin1. Я не знаю то, что происходит, когда latin1 входит к utf8 столбцу, но он вызывает некоторые странные проблемы дисплея для объектов как запятая, кавычки, амперсанд, и т.д.

Теперь, когда mysql_set_charset существует, он вытаскивает данные с броскими символами. Какой-либо способ преобразовать latin1-utf8 суп в прямой utf8 теперь, когда у меня есть ресурс соединения с базой данных с помощью корректного набора символов?

5
задан scootklein 4 July 2010 в 20:04
поделиться

1 ответ

Нашел исправление с вашим комментарием. Вот строка SQL, которая, похоже, решила мою проблему.

UPDATE table SET col = CONVERT(CONVERT(CONVERT(col USING latin1) USING binary) using utf8);

Несмотря на то, что столбец имеет формат UTF8, он вынуждает его извлечь данные как latin1, преобразовать в двоичный, преобразовать в utf8 и повторно вставить.

4
ответ дан 15 December 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: