UTF8 проблема с MySQL 5 - PullRequest
       19

UTF8 проблема с MySQL 5

4 голосов
/ 06 декабря 2008

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

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

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

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

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

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

Ответы [ 3 ]

10 голосов
/ 06 декабря 2008

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

SET NAMES 'utf8';

на ваш дамп sql?

Что касается utf8 или кодировок в общем, то, что для успеха вам необходимо убедиться, что:

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

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

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

$ mysql -h хост -u имя пользователя -p пароль - набор символов по умолчанию = utf8 база данных

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

1 голос
/ 06 декабря 2008

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...