"И" и "ш" отображаются некорректно / кодиро

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

secondsky
New Member
New Member
Posts: 3
Joined: Mon Apr 30, 2007 11:13 pm

"И" и "ш" отображаются некорректно / кодиро

Post by secondsky »

Всем привет!

На сайте не показываются буквы "ш", вместо них ромбик с вопросом, а за ним уже обычный знак вопроса. Поставил на мастерхост (раньше раз десять ставил сайты на хостинге "мажордом" полностью идентичным образом, проблемы не было), ничего не менял. Весь контент в utf-8, шаблоны в utf тоже. PHPMyAdmin показывает, что таблицы и база в utf_general_ci. Также, наверное это важно, контент после добавления страницы и вновь открытия ее в админке для редактирования показывается с ромбиками и вопросами...

Понимаю, что проблема вроде мелкая, весь интернет прудит описаниями, но так как я не программист (именно поэтому cmsms мне и нравится), то излазил все и ничерта не понимаю, вроде пробовал менять setlocale, ставить в htaccess utf-8 по умолчанию, и в config.php явно указывать utf-8, но все это видимо не то...

Заранее спасибо за помощь!
Sonya

Re: Проблема с "ш"

Post by Sonya »

Вот тут уже обсуждалось http://forum.cmsmadesimple.org/index.ph ... 903.0.html
secondsky
New Member
New Member
Posts: 3
Joined: Mon Apr 30, 2007 11:13 pm

Re: Проблема с "ш"

Post by secondsky »

Там другая проблема, в админке, а не в поведении сайта. И симптомы другие -- в моем случае нет   после ромба. Использование способов из той ветки не помогло, пробовал.
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

Re: Проблема с "ш"

Post by ZYV »

Че-то странное. Похоже ты всё-таки что-то намутил с базой (любимое дело у некоторых  наших, за которыми мне потом приходится переделывать - это ставить utf8 базу поверх соединения cp1251). Кстати у меня на мастерхосте есть несколько клиентов, всё ОК, правда версии CMS не последние.
unsigned double ZYV;
secondsky
New Member
New Member
Posts: 3
Joined: Mon Apr 30, 2007 11:13 pm

Re: Проблема с "ш"

Post by secondsky »

Все решил. Меня топик того поста и первая страница смутили, они посвящены действительно другой проблеме. Но далее там есть полезная информация. Вставляю, чтобы никто не терялся в поисках в следующий раз:
Чтобы избежать всех глюков делаю так:
1. В config.php прописываю $config['locale'] = 'ru_RU.UTF-8'; (хотя это без этого не работало только в одном месте)
2. В class.admintheme.inc.php в FixSpaces использую preg_replace('/\s+/u'," ", $str)
3. В incude.php раскомментирую строку $cmsdb->Execute('set names utf8');
4. При создании БД, указываю для неё сравнение utf8_general_ci и после этого инсталлирую CMSMS; таким образом, везде используется это сравнение
Выполнение первых трех пунктов решило проблему с буквами "ш" (благо 4 пункт все же и без того был выполнен). Правда, сомневаюсь, что пункт номер 2 нужно выполнять (кто знает, поправит).

Всем спасибо :)
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

Re: Проблема с "ш"

Post by ZYV »

Вот, золотые слова, а то ведь люди ухитряются иметь проблемы с кодировками.

По поводу п.2 - вроде как пришли к выводу, что это зависит от версии PHP и PCRE и проявляется довольно редко. Но для тех, у кого проявляется, проблему решает.
unsigned double ZYV;
User avatar
Il_Burbero
Forum Members
Forum Members
Posts: 128
Joined: Tue Apr 15, 2008 10:36 am

Re: Проблема с "ш"

Post by Il_Burbero »

При переходе на 1.4 обнаружено что надобность в п.3 отпала, в incude.php строки $cmsdb->Execute('set names utf8'); более не живет :)

Увы добавлять для preg_replace указатель (блинзабыл как называется) /u наверное судьба кириликов и недостаток самого preg_replace (функции).
Sonya

Re: Проблема с "ш"

Post by Sonya »

Il_Burbero wrote: При переходе на 1.4 обнаружено что надобность в п.3 отпала, в incude.php строки $cmsdb->Execute('set names utf8'); более не живет :)
Странно, а у меня живет  :)
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

Re: Проблема с "ш"

Post by ZYV »

Прогон, всё живет как и жило. И, кстати, /u я не добавлял никогда...
unsigned double ZYV;
Sonya

Re: Проблема с "ш"

Post by Sonya »

ZYV wrote: И, кстати, /u я не добавлял никогда...
Потому что ты Linux, а мы Windows :)
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

Re: Проблема с "ш"

Post by ZYV »

Вот так вот люди сначала создают себе проблему, а потом решают её, решают...  ;D
unsigned double ZYV;
nikolai1200
New Member
New Member
Posts: 2
Joined: Fri Sep 05, 2008 7:06 pm

Проблемы с кодировкой некоторых символов

Post by nikolai1200 »

Доброго дня\ночи!

Проблема в следующем: вместо некоторых символов (ш, И) отображается вот :o такое: �?
В чем может быть причина и как с этим бороться?
vchilikov
Forum Members
Forum Members
Posts: 28
Joined: Fri Aug 15, 2008 7:17 pm

Re: Проблемы с кодировкой некоторых символо&#

Post by vchilikov »

Вопрос уже поднимался. Смотрите тему
http://forum.cmsmadesimple.org/index.php/topic,24359.0.html
Sonya

Re: Проблемы с кодировкой некоторых символо&#

Post by Sonya »

Вот джентельменский набор, который решает все проблемы:
    * 1. В config.php прописать $config['locale'] = 'ru_RU.UTF-8';
    * 2. В class.admintheme.inc.php в FixSpaces использовать preg_replace('/\s+/u'," ", $str)
    * 3. В incude.php раскомментировать строку $cmsdb->Execute('set names utf8');
    * 4. При создании БД, указать для неё сравнение utf8_general_ci и после этого устанавливать CMSMS;
nikolai1200
New Member
New Member
Posts: 2
Joined: Fri Sep 05, 2008 7:06 pm

Re: Проблемы с кодировкой некоторых символо&#

Post by nikolai1200 »

Sonya wrote: Вот джентельменский набор, который решает все проблемы:
    * 1. В config.php прописать $config['locale'] = 'ru_RU.UTF-8';
    * 2. В class.admintheme.inc.php в FixSpaces использовать preg_replace('/\s+/u'," ", $str)
    * 3. В incude.php раскомментировать строку $cmsdb->Execute('set names utf8');
    * 4. При создании БД, указать для неё сравнение utf8_general_ci и после этого устанавливать CMSMS;
Спасибо! Получилось!
Post Reply

Return to “Russian - русский”