Неправильный импорт MySQL, теперь у нас вместо мусора utf-8 отображается мусор - PullRequest
3 голосов
/ 12 мая 2011

Мы восстановили из резервной копии в другом формате новую структуру MySQL (которая правильно настроена для поддержки UTF-8).У нас есть странные символы, отображаемые в браузере, но мы не уверены, как они называются, поэтому мы можем найти основной список того, на что они переводятся.

Я заметил, что они действительно коррелируютконкретному персонажу.Например:

â„¢ always translates to ™
— always translates to —
• always translates to ·

Я ссылался на этот пост, с которого я начал, но это далеко не полный список.Либо я не ищу правильное имя, либо «основной список» этих плохих в хорошее преобразований в качестве ссылки не существует.

Ссылка: Обнаружение неработающих символов utf8 в MySQL

Кроме того, при поиске с помощью запроса MySQL, если я ищу â, MySQL всегда воспринимает его как «a».Есть ли способ настроить мои запросы MySQL, чтобы они были более буквальными поисками?Мы не слишком много используем интернационализацию, поэтому я могу смело предположить, что любые поля, содержащие символ â, считаются проблемной записью, которую необходимо исправить с помощью нашего сценария «fixit», который мы создаем.

1 Ответ

2 голосов
/ 13 мая 2011

Вместо того, чтобы разрабатывать сценарий "fixit" для прохождения и замены этих данных, я думаю, что было бы лучше просто решить проблему напрямую.Кажется, что данные изначально хранились в другом формате, нежели UTF-8, поэтому, когда вы занесли их в таблицу, настроенную для UTF-8, они исказили текст.Если у вас есть возможность, вернитесь к своей исходной резервной копии, чтобы определить формат, в котором были сохранены данные. Если вы не можете сделать это, вам, вероятно, потребуется сделать пробную версию с ошибкой, чтобы выяснить, какой формат данныхв. Однако, как только вы знаете, что преобразование легко.Прочитайте следующий раздел статьи о восстановлении:

http://www.istognosis.com/en/mysql/35-garbled-data-set-utf8-characters-to-mysql-

В основном вы собираетесь установить столбец на BINARY, а затем установить его на исходную кодировку.Это должно привести к тому, что текст будет отображаться правильно (хорошая проверка, чтобы знать, что вы используете правильный набор символов).Как только это будет сделано, установите для столбца значение UTF-8.Это преобразует данные должным образом и исправит проблемы, которые вы испытываете в настоящее время.

...