Неправильное восстановление базы данных, проблема с кодировкой

Я перепутал настройки с W3 Total Cache (пытался импортировать все медиа в мою библиотеку, не получилось хорошо, сломал все мои ссылки на каждую картинку). Поэтому я взял последнюю резервную копию базы данных, скопировал / вставлял таблицы _post и _postmeta внутри моего phpmyadmin. Он вернул ссылки и изображения, как ожидалось, но теперь все французские символы (à, é, è и т. Д.) Отображаются неправильно.

Я взял резервную копию из плагина WP-DBManager, который, похоже, не правильно обрабатывает UTF-8. Каков самый быстрый способ исправить проблему?

благодаря

Отредактировано для более подробной информации: заголовок резервного копирования SQL

DROP TABLE IF EXISTS `hojd_posts`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; 

Однако у меня есть те символы, которые плохо кодируются, поступая непосредственно в мои команды sql (например: français для «français») …

Solutions Collecting From Web of "Неправильное восстановление базы данных, проблема с кодировкой"

Вы можете решить эту проблему, если у вас есть текстовый редактор с хорошей поддержкой кодирования. Таким образом, вы можете переключаться между кодировкой Latin 1 и UTF-8, пока не получите правильную комбинацию. Я использую SubEthaEdit, который может конвертировать, а также переинтерпретировать файл при изменении кодировки.

ç должен быть закодирован как c3 a7 в UTF-8, когда вы рассматриваете их как байты. Что может происходить здесь, так это то, что файл сначала интерпретировался как латинский 1, где c3 a7 означает ç , а затем сохраняется как UTF-8, где ç сохраняется как c3 83 c2 a7 . Вам нужна версия c3 a7 .

Способ вернуться к хорошему ç – открыть файл как UTF-8, сохранить его как Latin-1, а затем открыть его снова, как если бы это был UTF-8.

Как только вы это сделаете, вы можете импортировать файл в MySQL, но укажите его UTF-8, иначе MySQL может попытаться интерпретировать его как латинский 1, и у вас все еще ç символы ç .

У меня была аналогичная проблема с немецкими умлаутами. Проблема также возникла при экспорте db с помощью phpmyadmin. Моим решением было экспортировать базу данных с помощью средства командной строки mysql и параметра «–default-character-set =« utf8 ».

Другой подход, если у вас нет доступа к оболочке linux: установите и используйте MySQLDumper

Общей проблемой со старыми базами данных WordPress и даже более новыми является то, что таблицы базы данных устанавливаются как latin-1, но содержимое фактически кодируется как UTF-8. Если вы попытаетесь экспортировать, поскольку UTF-8 MySQL попытается преобразовать (предположительно) данные Latin-1 в UTF-8, что приведет к двойным кодированным символам, поскольку данные уже были UTF-8.

Решение состоит в том, чтобы экспортировать таблицы как latin-1. Поскольку MySQL считает, что они уже латинские-1, он будет осуществлять прямой экспорт.

  1. Измените набор символов с 'latin1' на 'utf8'.

Так как сбрасываемые данные не были преобразованы во время процесса экспорта, это фактически кодированные данные UTF-8.

  1. Создайте новую таблицу как UTF-8. Если ваша команда CREATE TABLE находится в вашем файле дампа SQL, измените набор символов с 'latin1' на 'utf8'.

  2. Обычно импортируйте данные. Поскольку в вашем файле дампа есть кодированные данные UTF-8, объявленный набор символов в файле дампа теперь UTF-8, а таблица, в которую вы импортируете, – это UTF-8, все будет идти гладко.