проблемы с кодировкой

Рассмотрим случай, когда «иегорлифы» появились после внесения изменений в тему или вставку счетчиков или после русификации плагина

Правило тут одно и оно очень простое:

Если вы открыли файлы темы (или файлы плагина) и изменили их (русифицировали например), сохраняйте в той же кодировке, в которой у вас блог.
Если блог в кодировке utf-8, сохраняйте в utf-8 (без BOM)

Для этого лучше использовать редактор, который поддерживает utf.
Например: gvim, PSPAD, dreamweaver (PSPAD и gVim — бесплатные)
Можно сохрянять и в Блокоте, тогда не забывайте выбирать "Сохранить как" и "Кодировка" — utf-8

Топики по теме «проблемы с кодировкой»:
1. Распространенные ошибки при работе с WordPress

2. Проблемы с буквой "ш" и "и"
Еще решение от Yana (Проблемы с буквой "ш" и "и"):
в файле wp-settings.php в самом низу после:

do_action('init');

добавить две строчки:

mysql_query("SET CHARACTER SET utf8");
mysql_query("SET NAMES utf8");

К проблеме 2: Если БД в UTF-8 и символы пропадают или отображаются неправильно то: (в локальной версии смог решить так):

1.Делаем backup бд и удаляем ее.
2.Ищем в файле /wp-includes/wp-db.php строку
$this->select($dbname);
после нее прописываем mysql_query(‘set names utf8;’); Т.е. устанавливаем кодировку данных UTF-8.

Более расширенная версия исправления:
mysqli_query($active_db,’SET NAMES "UTF8"’);
mysqli_query($active_db,"SET collation_connection=’utf8_general_ci’");
mysqli_query($active_db,"SET collation_server=’utf8_general_ci’");
mysqli_query($active_db,"SET character_set_client=’utf8’");
mysqli_query($active_db,"SET character_set_connection=’utf8’");
mysqli_query($active_db,"SET character_set_results=’utf8’");
mysqli_query($active_db,"SET character_set_server=’utf8’");
Однако советую использовать вышесказанное только если понимаете о чем идет речь.

Еще очень подробно и углубленно почитать можно тут Перенос базы из mysql …

P.S. Тестировал на локальной версии, но думаю, что и на реальной можно смело применять 😉

Статьи по теме (по русски):

1. Как вылечить UTF автор Slaff.net

2. О кодировке WordPress автор Макс (maxsite.org)

3. Проблемы русского WordPress’а автор Макс (maxsite.org)

4. My SQL 4.1 и любые проблемы с русскими буквами

5. Проблемы с кодировками на хостингах

Если знаете еще полезные ссылки, добавляйте!

У меня все нормально отбражается. Но когда я в IE нажимаю посмотреть код, то вижу иероглифы вместо кириллицы. Посмотрел так другие сайты с UTF, кириллица отображается нормально.
Я опасаюсь, что поисковые боты будут точно также видеть код, где заменены символы кириллицы.

У меня все нормально отбражается. Но когда я в IE нажимаю посмотреть код, то вижу иероглифы вместо кириллицы. Посмотрел так другие сайты с UTF, кириллица отображается нормально.
Я опасаюсь, что поисковые боты будут точно также видеть код, где заменены символы кириллицы.

У меня было такое из-за плагина "последние комменты"

У меня проблема точно такая же как у Andrew:

Отображается все нормально, но когда в IE нажимаю посмотреть код, то вижу иероглифы вместо кириллицы.

Есть свои особенности:
на главной странице нет этой проблемы и в браузере и во View Source все отображается нормально, но все остальные страницы в коде – иероглифы.

Установлены следующие плагины:
Akismet
All in One SEO Pack
cforms
Exec-PHP
MaxSite Russian Date
RusToLat
WP-PageNavi
eCommerce

в htaccess прописано:
AddDefaultCharset UTF-8

CharsetDisable On

CharsetDefault UTF-8

CharsetSourceEnc UTF-8

Что еще нужно сделать, чтобы и в коде была нормальная кириллица?

адрес сайта дайте

отправил урл на почту)

почту не читаю. Выкладывайте сюда.

Что еще нужно сделать, чтобы и в коде была нормальная кириллица?

Мой ишачок нормально показал. Всё, кроме keywords от SEOнистского плагина – он "ромбики" просто проигнорировал.

Попробуйте для начала вернуть на место <!DOCTYPE… и избавиться от прочих ошибок в html. Валидатор ищите на w3c.org.

<!DOCTYPE… проблему не решило.

а что Вы подразумеваете под "ромбиками"?

Так показывает FireFox

Понял.

Проблема скорее всего в базе. У многих таблиц в сравнении стоит cp1251_general_ci, сейчас изменяю на utf8_general_ci, надеюсь это решит проблему)

Не помогло изменение кодировки в базе(

Моя проблема решена следующим образом:

Поправил код в плагине All-in-One-SEOpack. Все дело в выводе meta name="keywords".
В файле /plugins/all-in-one-seo-pack/all_in_one_seo_pack.php

if ((is_home() && get_option(‘aiosp_home_keywords’)) || $this->is_static_front_page()) {
$keywords = trim($this->internationalize(get_option(‘aiosp_home_keywords’)));
} else {
$keywords = $this->get_all_keywords();

Если заменить $keywords = $this->get_all_keywords();, например, на
$keywords = trim($this->internationalize(get_option(‘aiosp_home_keywords’)));
то проблема с кодировкой пропадает.

С проблемой помог разобраться хостер, спасибо ему)

у меня тоже сейчас проблема с кодировкой в плагине цитаты. Вношу цитаты, они отображаются знаками вопроса. Нарыла на форумах что надо поменять кодировку плагина. утф8 генерал по моему как то так она называлась. поменяла как у плагина так и у всего блога но не помогло…у меня вообще странное дело с этими знаками вопроса- я хоть и не в России живу но у меня комп и пишет и читает по русски прекрасно но стоит мне загрузить какую то русскую программу например тот же вебмани то все отображается знаками вопроса ( использую сейчас англ. версию веб мани) но вот что делать с плагином? ну очень нужен:)

Ну дык Вам виднее, кто что у Вас режет. Если ромбики/квадратики/вопросики появляются в конце обрезанной строки, то 99.9% обрезание делается тупым… я хотел сказать, что используются не-юникодные функции, которым пофигу сколько байт в букве, а потому в результате может остаться только кусочек utfной буквы, который и отображается ромбиком/квадратиком/вопросиком. Вывод: напильник в руки и точить плагин. Тема, кстати, не нова, если в поиск вобьете mb_substr, то найдется несколько похожих.

Так что походу никто ничего не режет

Прям-таки ничего?

а трабла таки в шаблоне темы... верно я мыслю, как Вы думаете?

Не вижу принципиальной разницы, где лежит глюкокод: в плагине, в functions.php Темы или прямо в шаблоне. Суть одна. И я Вам указал наиболее вероятную причину. А конкретное место искать и править – это уже Ваша забота 😉

У меня с WPAds проблемы с кирриличными символами. В админке. После добавления новых баннеров все нормально. Т.е русскоязычные символы сохраняются правильно. Но стоить открыть редактирование записи о баннере, как уже крякозябры….

На то м же сайте интересная трабала с СForms: Так все нормально, но если письмо отправдено с 6 эксплорера, то все приходит в коякозябрах и аяксовые навороты, которые оповещают пользоваьтеля о том что письмо отправлено, тоже в крякозабрах…

Мне кажется у этих двух проблем на одн ом сайте – общий корень.. Таблицы в базе все как надо, в UTF general ci

У меня установлен блог на WordPress. Предыдущая версия 3 работала без проблем. Обновился до версии 3.2.1 возникли проблемы с кодировкой. Исправил всё. Но вот один момент исправить не могу.
Заголовок сайта (Параметры-Общие настройки – Заголовок сайта) невозможно прописать кириллицей. Прописываю латинскими буквами – всё становится без проблем.

В чем причина проблемы ?
Базы в кодировке utf8_general_ci
В файлах настройки блога
wp-config.php
wp-settings.php
прописал utf8

Но ничего не помогло. Видимо какая-то глобальная причина. Как её найти ?

Ссылка на сайт – http://costaespera.com.ua/blog/

Если база изначально была в другой кодировке, то смена кодировки таблицы на вкладке «Операции» не приведёт к автоматическому конвертированию её полей.

1. Стоит убедиться (посмотрев в структуре таблицы), что поля таблицы wp_options (option_name, option_value) также имеют кодировку utf8_general_ci.
2. Корректно ли отображается заголовок при просмотре параметра blogname через phpMyAdmin?

Кстати, письмо с этого форума при регистрации с кракозябрами приходит (я на днях зарег.). Может админы исправят

1. Стоит убедиться (посмотрев в структуре таблицы), что поля таблицы wp_options (option_name, option_value) также имеют кодировку utf8_general_ci.
2. Корректно ли отображается заголовок при просмотре параметра blogname через phpMyAdmin?

По первому пункту – безусловно я это сделал в самом начале. Просмотрел. Вроде всё в порядке.

Затем открыл wp_options

Вручную прописываю прямо в базе Real Estate – всё в порядке, отображается
Прописываю кириллицей Недвижимость – на блоге пустота, а в базе текст остается.
Видимо, где-то баг в кодировке внутри блога, но вот где ну никак найти не могу.

То есть все эти действия я сделал ещё до того как написать сюда. Пишу потому, что сделал вроде бы всё. А проблему решить не могу.

невозможно прописать кириллицей.

В чем невозможность выражается? Буквы в формочку не вводятся? Не сохраняются в настройках? Не отображаются на самом сайте?

Не отображаются. При сохранении сохраняется пустая форма, без символов вообще. То есть пустое место.

Дефолтную Тему и отключение плагинов пробовали? (пп 3-8 Как задавать правильные вопросы « WordPress Codex)

В файлах настройки блога
wp-config.php
wp-settings.php
прописал utf8

На всякий случай — wp-settings.php менять не нужно. В общем случае достаточно строки define(‘DB_CHARSET’, ‘utf8’); в wp-config.php.

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

В итоге на второй день возни убрал, как и рекомендовали, вот эти стороки
do_action(‘wp_loaded’);
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET NAMES utf8");

в файле wp-settings.php

В итоге получил вот такое

В таком виде, ничего не добавляя и не убирая – прописал в админке название блога и краткое описание. Админка, кстати, прекрасно работала в этот момент с кириллицей.
Сохранил – всё сохраняется.

Потом опять дописал
do_action(‘wp_loaded’);
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET NAMES utf8");

в файле wp-settings.php

Всё заработало. Сделанная запись сохранилась.

После этого несколько раз экспериментировал – записи в админке сохраняются только при крякозябрах в блоге. Иначе никак.

Вот такая весьма забавная история.

SET NAMES utf8

Обычно такой запрос уже выполняется при подключении к базе:
http://core.trac.wordpress.org/browser/tags/3.3/wp-includes/wp-db.php#L537

Предполагаю, что повлиял второй — SET CHARACTER SET utf8 — который делает почти то же самое, но меняет ещё и свойство collation_connection.

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