Перескакивает кодиковка с UTF-8 на cp1251

Cтолкнулся с такой проблемой: при попытке запостит комментарий если пользователь не авторизовался и не ввел е-мэил и имя, браузер IE 6.0 при работе wp-comments-post.php переходит с кодировки UTF-8 на Кириллицу(Windows) и предупреждение о необходимости авторизоваться выводится аброкадаброй.
Подобный же глюк происходит и при работе с fGallery. Страница с альбомами грузится нормально, а когда пытаешься зайти в какой-то альбом, вновь слетает кодировка.
Не подскажете как с этим можно бороться?

Похожая проблема… Тоже очень интересует решение.

Скорее всего дело вот в чем. В некоторых файлах используется php-функция die(), которая завершает выполнение сценария с выводом ошибки. В файле wp-comments-post.php именно так и происходит. Сам же вывод производится простым текстовым сообщением: без заголовков и кодировки. По этой причине, сервер выдает её в своей системной кодировке. Если блог работает в UTF-8, а сервер в Windows-1251, то и сообщения получаются крокозяблами.

Решение. В указаном файле нужно изменить текст функции die() с простого на HTML, например:

die( __('
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head><body>
Извините, Вы должны авторизоваться для комментирования.
</body></html>') );

Дополнение. Можно вместо die() указать wp_die() (если у вас версия 2.0.4 и выше – на других не проверял).

Дополнение. Можно вместо die() указать wp_die() (если у вас версия 2.0.4 и выше - на других не проверял).

Спасибо большое, помогло!
Не могли бы Вы внести эти изменения в свою конфигурацию WordPress’а, я думаю, это будет полезным многим пользователям.

Нашел еще один способ решения данной проблемы. Если есть доступ к .htaccess в нем необходимо добавить строчку AddDefaultCharset utf-8

Ура!! Помогло! Сделала, как сказал LaKonst:

Нашел еще один способ решения данной проблемы. Если есть доступ к .htaccess в нем необходимо добавить строчку AddDefaultCharset utf-8

Осталась только проблема с Фотопрессом: catslug и имя изображения отображаются каракулями. При этом в базе имя прописывается нормально, а catslug – нет! У кого-нибудь будут соображения по этому поводу?

А мне не помогло ничего ( При попытке зайти в альбом слетает кодировка и вылазит эта хрень failed to open stream: Permission denied in wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.php on line 1210. Кто что подскажет ?

Anonymous
Отправить
Ответ на: