2011-02-04 4 views
0

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

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

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

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

Что подтвердило это для меня, было создание тестового сценария php, который вытащил одно поле post_content из каждой базы данных. В тестовом скрипте символы отображаются зашифрованными ('), независимо от того, из какого db они происходят.

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

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

Любая помощь будет действительно оценили, Iâ € ™ ве ударив головой об этом некоторое время теперь;)

Спасибо.

ответ

0

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

  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 to UTF content plug in для преобразования любого не кодируются символы innthe таблицы в формате UTF символов.
0

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

+0

Спасибо, Джим. Я изучил это. Оба сервера отправляют заголовок с текстом Content-Type/html; charset = UTF-8 и Transfer-Encoding (если это имеет значение). Что еще вы порекомендуете, я ищу? – evanmcd

+0

Какой браузер? Кроме того, эти блоги видны в Интернете? Можете ли вы разместить ссылки? –

Смежные вопросы