Проблемы с кодировкой 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(); }
вот и все
5 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…
в чем может быть проблема?