Вопрос

Я переношу свой блог WordPress и форум phpBB на новый хостинг-сервер.Я использую phpMyAdmin для импорта сценария SQL из базы данных на предыдущем сайте.

Когда я открываю сценарий .sql с помощью Кейт, он говорит, что в качестве кодировки использует UTF8.Когда я импортирую sql на новый сервер, в phpMyAdmin у меня есть возможность выбрать кодировку, где по умолчанию выбирается utf8.

Тем не менее, когда я заканчиваю импортировать базу данных, я читаю текст сообщений прямо в phpMyAdmin и вижу такие символы, как «é», «ñ» и т. д.которые не были «интерпретированы» и заменены странными символами.

Я вижу, что моя установка WordPress тоже не работает.Видимо, есть проблема с этой кодировкой, но я думаю, что проблема в базе данных MySQL или phpMyAdmin, а не в WordPress.

Версии MySQL практически такие же, MySQL 5, но другой ревизии.Кроме того, при переносе базы данных форума проблем не возникло, так что это еще более странно...

Я теряюсь, как это исправить...Любые идеи приветствуются.

Это было полезно?

Решение

Вы пробовали добавить

SET NAMES 'utf8';

в ваш дамп sql?

Проблема с utf8 или кодировками в целом заключается в том, что для достижения успеха вы должны убедиться, что:

  • файл в кодировке utf8 без подписи
  • кодировка сервера MySQL по умолчанию установлена ​​на utf8.
  • соединение - utf8 (поэтому вы помещаете SET NAMES 'utf8' в свой sql-файл).
  • все таблицы и столбцы имеют правильную кодировку и кодировку
  • все ваши веб-файлы также должны быть в кодировке utf8.И просто добавить правильный заголовок не получится.Приходится открывать файл, проверять кодировка utf8, если нет, то все вырезать, менять кодировку на utf8 и вставлять все обратно.Не получится, если просто сменить кодировку и сохранить файл!

Другие советы

Большое спасибо за ваши ответы. Я нашел решение, и я чувствую себя действительно глупым, чтобы не понять это раньше Все должно было работать нормально:

-файл был закодирован с помощью utf8 Таблицы были объявлены с utf8:

SET character_set_client = utf8;
MySQL сервер был настроен с utf8 И т.д. <р>

Во-первых, я не осознавал, что использую резервную копию базы данных из мастера резервного копирования cPanel. Как только я понял это, я использовал phpMyAdmin на старом сервере, чтобы экспортировать базу данных, импортировал ее на новый сервер, и, прежде всего, проблема была исправлена.

phpMyAdmin понимает phpMyAdmin лучше, чем cPanel: P Очевидно, cPanel экспортирует скрипт для его импорта с помощью самого cPanel. Скорее всего, это бы сработало, но я доверяю phpMyAdmin лучше.

Большое спасибо за ваши ответы.

Я только что столкнулся с той же проблемой, так как я боролся с ней около часа, и это сломало многие из моих сайтов, я решил, что посмотрю и посмотрю, если кто-то еще борется с этим, и опубликую решение: Решение довольно просто указать импортный набор символов при импорте.

Если у вас есть SSH-доступ к вашему хосту, сначала снова удалите все таблицы в новую базу данных, затем выполните эту команду в сеансе SSH (при условии, что ваш старый файл дампа olddatabase.dump.sql ):

$ mysql -h хост -u имя пользователя -p пароль --default-character-set = utf8 база данных < olddatabase.dump.sql (замените хост, имя пользователя, пароль и базу данных соответствующими значениями)

Это самый простой и простой способ решения проблемы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top