Проблема кодирования WordPress - PullRequest
0 голосов
/ 05 февраля 2011

У меня возникла проблема, связанная с WordPress, хотя это может быть что-то еще.

Вот что происходит:

У меня есть блог с сообщениями, использующими символы utf-8 (простые, как ’). В настоящее время все символы отображаются правильно, однако я перевожу свой сайт на другой сервер и вижу проблемы со всеми символами utf-8 («становится»).

Сначала я подумал, что проблема связана с MySQL, но, посмотрев на нее, похоже, дело не в этом. Я создал новую базу данных, выполнив синхронизацию с Navicat, и подтвердил, что и базы данных, и все таблицы имеют формат utf-8. При просмотре данных в любой базе данных в любой программе SQL, которую я пробовал (Sequel Pro, Navicat), символы отображаются незакодированными (…). Я пробовал различные методы синхронизации, в том числе те, которые, как говорили другие, решили проблемы с кодированием, но у меня они не сработали.

Что подтвердило это для меня, так это настройка тестового php-скрипта, который извлекал по одному полю post_content из каждой базы данных. В тестовом скрипте символы отображаются закодированными (’) независимо от того, из какой они базы данных.

Я проверил файл конфигурации apache и обнаружил, что для HTTP_ACCEPT_CHARSET установлено одинаковое значение (ISO-8859-1, utf-8; q = 0,7, *; q = 0,7) в обеих системах.

Оооочень, я думаю, что это проблема WordPress, хотя, конечно, я могу ошибаться.

Любая помощь была бы по-настоящему признательна, я уже давно бьюсь об этом;)

Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2011

Итак, я наконец-то использовал плагин для решения проблемы.Вот шаги, которые я предпринял:

  1. Перенос структуры и содержимого старой базы данных в новую базу данных с использованием Navicat для MySQL (хотя я думаю, что любой метод копирования будет работать).
  2. Измените кодировку столбцов в таблице wp_posts на utf8, используя ALTER TABLE 'wp_posts' CHANGE COLUMN 'post_content' 'post_content' longtext CHARACTER SET utf8 NOT NULL after 'post_date_gmt';
  3. Используйте подключаемый модуль ISO к UTF в , чтобы преобразовать все некодированные символы в таблице в символы utf.
0 голосов
/ 05 февраля 2011

То, что вы видите, - это данные UTF-8, интерпретируемые, как если бы они были ISO-8859-1 (или Win-1252, или другая однобайтовая кодировка). Подобные проблемы почти всегда являются несоответствием между заголовками, отправляемыми в браузер, и фактической кодировкой. Что-то говорит браузеру, что потоком является ISO-8859-1 во время фактической отправки UTF-8.

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