Page 1 of 3

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

Posted: Sun Aug 03, 2008 1:53 pm
by secondsky
Всем привет!

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

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

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

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

Posted: Sun Aug 03, 2008 6:20 pm
by Sonya
Вот тут уже обсуждалось http://forum.cmsmadesimple.org/index.ph ... 903.0.html

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

Posted: Sun Aug 03, 2008 6:46 pm
by secondsky
Там другая проблема, в админке, а не в поведении сайта. И симптомы другие -- в моем случае нет   после ромба. Использование способов из той ветки не помогло, пробовал.

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

Posted: Sun Aug 03, 2008 6:51 pm
by ZYV
Че-то странное. Похоже ты всё-таки что-то намутил с базой (любимое дело у некоторых  наших, за которыми мне потом приходится переделывать - это ставить utf8 базу поверх соединения cp1251). Кстати у меня на мастерхосте есть несколько клиентов, всё ОК, правда версии CMS не последние.

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

Posted: Sun Aug 03, 2008 7:13 pm
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 нужно выполнять (кто знает, поправит).

Всем спасибо :)

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

Posted: Mon Aug 04, 2008 5:01 pm
by ZYV
Вот, золотые слова, а то ведь люди ухитряются иметь проблемы с кодировками.

По поводу п.2 - вроде как пришли к выводу, что это зависит от версии PHP и PCRE и проявляется довольно редко. Но для тех, у кого проявляется, проблему решает.

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

Posted: Fri Aug 22, 2008 7:50 pm
by Il_Burbero
При переходе на 1.4 обнаружено что надобность в п.3 отпала, в incude.php строки $cmsdb->Execute('set names utf8'); более не живет :)

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

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

Posted: Fri Aug 22, 2008 8:24 pm
by Sonya
Il_Burbero wrote: При переходе на 1.4 обнаружено что надобность в п.3 отпала, в incude.php строки $cmsdb->Execute('set names utf8'); более не живет :)
Странно, а у меня живет  :)

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

Posted: Sat Aug 23, 2008 1:48 pm
by ZYV
Прогон, всё живет как и жило. И, кстати, /u я не добавлял никогда...

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

Posted: Sat Aug 23, 2008 1:54 pm
by Sonya
ZYV wrote: И, кстати, /u я не добавлял никогда...
Потому что ты Linux, а мы Windows :)

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

Posted: Sat Aug 23, 2008 4:54 pm
by ZYV
Вот так вот люди сначала создают себе проблему, а потом решают её, решают...  ;D

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

Posted: Fri Sep 05, 2008 7:12 pm
by nikolai1200
Доброго дня\ночи!

Проблема в следующем: вместо некоторых символов (ш, И) отображается вот :o такое: �?
В чем может быть причина и как с этим бороться?

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

Posted: Fri Sep 05, 2008 9:11 pm
by vchilikov
Вопрос уже поднимался. Смотрите тему
http://forum.cmsmadesimple.org/index.php/topic,24359.0.html

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

Posted: Sat Sep 06, 2008 4:06 am
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;

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

Posted: Sat Sep 06, 2008 8:15 am
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;
Спасибо! Получилось!