Как правильно установить кодировку для файлов, баз данных, соединений и т. Д.? - PullRequest
1 голос
/ 01 марта 2011

Я перемещаю базу данных mysql с одного сайта на другой.

Код: utf8

Код подключения: utf8_unicode_ci

Кодировка, используемая в php-файлах этого сайта: utf-8 без спецификации

Кодировка в заголовках для каждой страницы этого сайта: utf-8

На этом сайте все отлично работает.

Затем я экспортировал базу данных с помощью phpmyadmin. Он сгенерировал файл .sql, закодированный с помощью utf-8, и когда я его открываю, все в порядке.

Затем я скопировал этот файл на новый сайт, который использует одинаковую кодировку для всего, и импортировал его.

Когда я показываю данные со старого сайта, на новом через веб-страницу отображаются неработающие символы. Например: ™ => .

Если я переключу кодировку браузера с utf-8 на iso-8859-1, я увижу правильный символ.

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

Я сделал импорт с помощью двух разных программ: phpmyadmin и webmin.

Значит, я понятия не имею, что здесь не так, есть мысли?

Как мне настроить кодировки, чтобы этого не произошло?

Ответы [ 3 ]

2 голосов
/ 01 марта 2011

Возможно, на первом сайте вы не установили кодировку соединения (см. Вывод mysql_client_encoding () в php). Если это проблема, вы сохранили ваши данные в неправильном формате, и вы также правильно преобразовали их обратно, используя то же поведение.

p.s. utf8_unicode_ci - это не кодировка, это сопоставление (как упорядочить строки)

1 голос
/ 01 марта 2011

Существует довольно хороший FAQ по кодировкам и кодировкам в PHP .

0 голосов
/ 16 мая 2014

Это случилось со мной раньше на старом сайте, он был в другом сопоставлении, поэтому, как только вы попытались изменить его на utf8, он будет показывать странные символы повсюду.

Иногда бэкенд в phpmyadmin показывает странные коды, но сайт показывает нормально.

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