Проблемы с кодировкой WordPress 2.7
Заметил что в некотрых случаях все AJAX ответы в админке возвращаются с неверной кодировкой. Изза этого все надписи кирилицей повреждены.
Это происходит тогда когда дефолтовая кдировка www хоста отличается от кодировки установленой в wordpress.
Лечится это маленьким изменением в wp-includes/admin-ajax.php
Нужно подправить метод send() объекта WP_Ajax_Response, привести его к такому виду.
function send() { header('Content-Type: text/xml; charset=' . get_option('blog_charset')); echo ""; foreach ( (array) $this->responses as $response ) echo $response; echo ''; die(); }
вот и все

8 comments to “Проблемы с кодировкой WordPress 2.7”
Январь 5th, 2009 at 03:34
Я решил без патча:
кладём в папку wp-admin .htaccess следующего содержания:
AddDefaultCharset utf-8
Январь 5th, 2009 at 03:37
Теги обрезались. Должно быть так:
<Files admin-ajax.php>
AddDefaultCharset utf-8
</Files>
Январь 6th, 2009 at 01:48
Да, красивое решение если включен allow override для вашего www домена (разрешены .htaccess)
На самом деле это более баг разработчиков wordpress и думаю в следующих версиях они это исправят.
Январь 12th, 2009 at 19:11
Добрый день.
Уже устал бороться с кривыми кодировками, может вы что-то подскажете?
Обновился до версии 2.7. Теперь при добавлении комментария они практически всегда добавляются в кодировке cp1251. Но более всего меня поражает, когда в админ-панели при обновлении страницы (например, доски объявлений) мы получаем нормальную кодировку комментариев (http://slava.in.ua/temp/bag-1.png), но уже при следующем обновлении — битую (http://slava.in.ua/temp/bag-2.png). И так ПОСТОЯННО! То же самое при редактировании статей и т.п.
MySQL-кодировка: UTF-8 Unicode (utf8)
Все сравнения (таблицы, столбцы) — utf8_general_ci
В .htaccess прописано AddDefaultCharset utf-8 (другие варианты хостинг не воспринимает)
Январь 15th, 2009 at 23:09
Странно…у меня не помогло ни описанное выше, ни htaccess…
в чем может быть проблема?
Январь 19th, 2011 at 11:52
Подскажите , будьте добры, в новом вордпрессе 3.0.4 папки в разных местах. скажите как сделать это решение в новом вордпрессе.
Январь 19th, 2011 at 14:13
положите файл .htaccess где прописано AddDefaultCharset utf-8 в корень сайта
Декабрь 2nd, 2011 at 09:43
К сожалению, коллеги, подобные ошибки в коде wordpress не устранены до сих пор. Я согласен с автором, что проблему нужно решить в коде php, а не на уровне php.ini или htaccess.
Кстати — ошибок больше, чем одна. У себя в статье описал 3 ошибка wordpress 3.2 с этими же корнями, и править необходимо в 3х разных файлах. Разработчикам в форум написал, реакции пока никакой (прошло две недели). Предлагаю поддержать мою просьбу к разработчикам, чем больше будет сообщений в этой теме, тем больше шансов, что разработчики обратят внимание на эти ошибки.