"И" и "ш" отображаются некорректно / кодиро
"И" и "ш" отображаются некорректно / кодиро
Всем привет!
На сайте не показываются буквы "ш", вместо них ромбик с вопросом, а за ним уже обычный знак вопроса. Поставил на мастерхост (раньше раз десять ставил сайты на хостинге "мажордом" полностью идентичным образом, проблемы не было), ничего не менял. Весь контент в utf-8, шаблоны в utf тоже. PHPMyAdmin показывает, что таблицы и база в utf_general_ci. Также, наверное это важно, контент после добавления страницы и вновь открытия ее в админке для редактирования показывается с ромбиками и вопросами...
Понимаю, что проблема вроде мелкая, весь интернет прудит описаниями, но так как я не программист (именно поэтому cmsms мне и нравится), то излазил все и ничерта не понимаю, вроде пробовал менять setlocale, ставить в htaccess utf-8 по умолчанию, и в config.php явно указывать utf-8, но все это видимо не то...
Заранее спасибо за помощь!
На сайте не показываются буквы "ш", вместо них ромбик с вопросом, а за ним уже обычный знак вопроса. Поставил на мастерхост (раньше раз десять ставил сайты на хостинге "мажордом" полностью идентичным образом, проблемы не было), ничего не менял. Весь контент в utf-8, шаблоны в utf тоже. PHPMyAdmin показывает, что таблицы и база в utf_general_ci. Также, наверное это важно, контент после добавления страницы и вновь открытия ее в админке для редактирования показывается с ромбиками и вопросами...
Понимаю, что проблема вроде мелкая, весь интернет прудит описаниями, но так как я не программист (именно поэтому cmsms мне и нравится), то излазил все и ничерта не понимаю, вроде пробовал менять setlocale, ставить в htaccess utf-8 по умолчанию, и в config.php явно указывать utf-8, но все это видимо не то...
Заранее спасибо за помощь!
Re: Проблема с "ш"
Вот тут уже обсуждалось http://forum.cmsmadesimple.org/index.ph ... 903.0.html
Re: Проблема с "ш"
Там другая проблема, в админке, а не в поведении сайта. И симптомы другие -- в моем случае нет после ромба. Использование способов из той ветки не помогло, пробовал.
Re: Проблема с "ш"
Че-то странное. Похоже ты всё-таки что-то намутил с базой (любимое дело у некоторых наших, за которыми мне потом приходится переделывать - это ставить utf8 базу поверх соединения cp1251). Кстати у меня на мастерхосте есть несколько клиентов, всё ОК, правда версии CMS не последние.
unsigned double ZYV;
Re: Проблема с "ш"
Все решил. Меня топик того поста и первая страница смутили, они посвящены действительно другой проблеме. Но далее там есть полезная информация. Вставляю, чтобы никто не терялся в поисках в следующий раз:
Всем спасибо
Выполнение первых трех пунктов решило проблему с буквами "ш" (благо 4 пункт все же и без того был выполнен). Правда, сомневаюсь, что пункт номер 2 нужно выполнять (кто знает, поправит).Чтобы избежать всех глюков делаю так:
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: Проблема с "ш"
Вот, золотые слова, а то ведь люди ухитряются иметь проблемы с кодировками.
По поводу п.2 - вроде как пришли к выводу, что это зависит от версии PHP и PCRE и проявляется довольно редко. Но для тех, у кого проявляется, проблему решает.
По поводу п.2 - вроде как пришли к выводу, что это зависит от версии PHP и PCRE и проявляется довольно редко. Но для тех, у кого проявляется, проблему решает.
unsigned double ZYV;
- Il_Burbero
- Forum Members
- Posts: 128
- Joined: Tue Apr 15, 2008 10:36 am
Re: Проблема с "ш"
При переходе на 1.4 обнаружено что надобность в п.3 отпала, в incude.php строки $cmsdb->Execute('set names utf8'); более не живет 
Увы добавлять для preg_replace указатель (блинзабыл как называется) /u наверное судьба кириликов и недостаток самого preg_replace (функции).

Увы добавлять для preg_replace указатель (блинзабыл как называется) /u наверное судьба кириликов и недостаток самого preg_replace (функции).
Re: Проблема с "ш"
Странно, а у меня живетIl_Burbero wrote: При переходе на 1.4 обнаружено что надобность в п.3 отпала, в incude.php строки $cmsdb->Execute('set names utf8'); более не живет![]()

Re: Проблема с "ш"
Прогон, всё живет как и жило. И, кстати, /u я не добавлял никогда...
unsigned double ZYV;
Re: Проблема с "ш"
Потому что ты Linux, а мы WindowsZYV wrote: И, кстати, /u я не добавлял никогда...

Re: Проблема с "ш"
Вот так вот люди сначала создают себе проблему, а потом решают её, решают... 

unsigned double ZYV;
-
- New Member
- Posts: 2
- Joined: Fri Sep 05, 2008 7:06 pm
Проблемы с кодировкой некоторых символов
Доброго дня\ночи!
Проблема в следующем: вместо некоторых символов (ш, И) отображается вот
такое: �?
В чем может быть причина и как с этим бороться?
Проблема в следующем: вместо некоторых символов (ш, И) отображается вот

В чем может быть причина и как с этим бороться?
Re: Проблемы с кодировкой некоторых символо
Вопрос уже поднимался. Смотрите тему
http://forum.cmsmadesimple.org/index.php/topic,24359.0.html
http://forum.cmsmadesimple.org/index.php/topic,24359.0.html
Re: Проблемы с кодировкой некоторых символо
Вот джентельменский набор, который решает все проблемы:
* 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;
-
- New Member
- Posts: 2
- Joined: Fri Sep 05, 2008 7:06 pm
Re: Проблемы с кодировкой некоторых символо
Спасибо! Получилось!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;