Русская локаль в 1.5.3
Русская локаль в 1.5.3
Добрый день, набрел на данную CMS, понравилась, решил попробовать и сразу грабли - в новостях месяц отображается квадратиками ����. полез на ваш форум вроде нашел решение проблемы, но не помогает. Вернее помогает - месяц теперь пишется русскими буквами, но если пройти по ссылке "Подробнее" , то там заглавие новости будет уже в виде Ð�овоÑ�Ñ�Ñ�Ñ�ка . пробовал различные комбинации из действий описанных http://forum.cmsmadesimple.org/index.ph ... 903.0.html
http://forum.cmsmadesimple.org/index.ph ... 484.0.html
но становится только хуже.
сервер линуксовый, локаль насвозь utf-8, мускульная база соответственно тоже. Как я понял из вышеуказанных тем проблема кроется в нестыковке между локалью базы и CMS, уважаемые гуру, подскажите решение, если оно существует.
http://forum.cmsmadesimple.org/index.ph ... 484.0.html
но становится только хуже.
сервер линуксовый, локаль насвозь utf-8, мускульная база соответственно тоже. Как я понял из вышеуказанных тем проблема кроется в нестыковке между локалью базы и CMS, уважаемые гуру, подскажите решение, если оно существует.
Re: Русская локаль в 1.5.3
Месяц квадратиками из-за php локали, нужно поставить ru_RU.utf8. Стандартная значит другая стоит.
Так как у тебя заголовок новостей отображается, скорей всего дело было так: cравнение базы в utf-8, а соединение в стандартной кодировке MySQL(latin....) Все это работало до тех пор, пока ты не включил $cmsdb->Execute('set names utf8'); После этого все, чтобы было нормально, упало. Если ты только тестируешь, то просто перезапиши заголовок по-новой и все должно устаканиться.
Так как у тебя заголовок новостей отображается, скорей всего дело было так: cравнение базы в utf-8, а соединение в стандартной кодировке MySQL(latin....) Все это работало до тех пор, пока ты не включил $cmsdb->Execute('set names utf8'); После этого все, чтобы было нормально, упало. Если ты только тестируешь, то просто перезапиши заголовок по-новой и все должно устаканиться.
Last edited by Sonya on Sun Mar 08, 2009 6:03 pm, edited 1 time in total.
-
- Power Poster
- Posts: 339
- Joined: Thu Nov 01, 2007 3:11 pm
Re: Русская локаль в 1.5.3
Когда уже установил - сделать что либо бывает проблематично (но не невозможно)
1. проверь что отдает веб сервер, какую кодировку, если отличную от utf-8, то либо настраивай сервер, либо, если апач, htaccess
2. проверь БД: там действительно кодировка utf8, и то, что содержится в базе действительно utf8 содержание (то есть, например, в phpmyadmin текст отображается нормально)
3. проверь кодировку соединения с БД, или set names utf8
Если на втором пункте в БД половину нормально, половина нет (что скорее всего у тебя) - то только экспортировать, сконвертировать и заново залить...
Если еще нет контента, а только проба цмс - удали все, сделай и проверь настройки, и заново установи...
1. проверь что отдает веб сервер, какую кодировку, если отличную от utf-8, то либо настраивай сервер, либо, если апач, htaccess
2. проверь БД: там действительно кодировка utf8, и то, что содержится в базе действительно utf8 содержание (то есть, например, в phpmyadmin текст отображается нормально)
3. проверь кодировку соединения с БД, или set names utf8
Если на втором пункте в БД половину нормально, половина нет (что скорее всего у тебя) - то только экспортировать, сконвертировать и заново залить...
Если еще нет контента, а только проба цмс - удали все, сделай и проверь настройки, и заново установи...
Re: Русская локаль в 1.5.3
[root@bonus /]# locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
у меня другой просто нет... $cmsdb->Execute('set names utf8'); мне все-таки оставить? а то я ее уже опять закомментил.
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
у меня другой просто нет... $cmsdb->Execute('set names utf8'); мне все-таки оставить? а то я ее уже опять закомментил.
Re: Русская локаль в 1.5.3
да вот переустанавливал, правда базу не убивал полностью - думал что при установке она перелопатится, но видимо нет...von-hamster wrote: Если еще нет контента, а только проба цмс - удали все, сделай и проверь настройки, и заново установи...
Re: Русская локаль в 1.5.3
Если соединение, НЕ сравнение(!) идет в utf8, то можно закомментить. Но я на 99% процентов уверена по описываемым симптомам, что соединение у тебя не utf8 стоит. И в phpMyAdmin ты видишь кракозябры. Если так, то, как посоветовал господин Хомяк, проще всего перезалить базу, или если текста немного, то расскомментить и перезаписать текст в админке.root wrote: $cmsdb->Execute('set names utf8'); мне все-таки оставить? а то я ее уже опять закомментил.
Re: Русская локаль в 1.5.3
после того как раскоментил $cmsdb->Execute('set names utf8'); все что ввожу на русском преобразуется в стройные ряды вопросительных знаков. Удаление текущей базы и переустановка с созданием новой поможет? И при переустановке
джентельменский набор, который решает все проблемы делать или нет:
* 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;
кстати по второму пункту: данная рекомендация, как я понял, относилась более старым версиям, а как в этой? там две сторки с preg_replace('/\s+/u'," ", $str) - одна с /u, другая (ниже) без. опять же, как я понял, в линуксе это не надо делать. как все сложно...
джентельменский набор, который решает все проблемы делать или нет:
* 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;
кстати по второму пункту: данная рекомендация, как я понял, относилась более старым версиям, а как в этой? там две сторки с preg_replace('/\s+/u'," ", $str) - одна с /u, другая (ниже) без. опять же, как я понял, в линуксе это не надо делать. как все сложно...

Last edited by root on Sun Mar 08, 2009 6:51 pm, edited 1 time in total.
Re: Русская локаль в 1.5.3
cat /etc/mysql/my.cnf в студию. 100% у тебя в [mysqld] нет
Ну сколько же можно мусолить эту тему. Люди - предже чем к серверам подходить, ДОКИ читайте. Я же не занимаюсь ремонтом самолетов, ага? Вот подумайте чем бы закончились ваши полеты на самолетах, которые ремонтировал нейробиолог...
а SET NAMES UTF-8 ты перед установкой не включил...default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
init-connect="SET NAMES utf8"
skip-character-set-client-handshake
lower_case_table_names=1
Ну сколько же можно мусолить эту тему. Люди - предже чем к серверам подходить, ДОКИ читайте. Я же не занимаюсь ремонтом самолетов, ага? Вот подумайте чем бы закончились ваши полеты на самолетах, которые ремонтировал нейробиолог...
unsigned double ZYV;
Re: Русская локаль в 1.5.3
порадовали вы меня своим сравнением с нейрофизиололгами, почти в точку попали, почему почти? да потому, что ремонт самолетов это уже будет профессия, а мои подходы к "серверам" это хобби и от них (подходов) не зависит жизнь людей - этого добра мне по основной специальности хватает
но это лирика, а вот физика уже интереснее:
указанных вами строк у мну в /etc/my.cnf действительно нет, по умолчанию в конфигурации этих строк нет даже в закомментированном виде.и надо сказать WordPress или Joomla! без них прекрасно работали в utf-8. мне эти строки добавить?

указанных вами строк у мну в /etc/my.cnf действительно нет, по умолчанию в конфигурации этих строк нет даже в закомментированном виде.и надо сказать WordPress или Joomla! без них прекрасно работали в utf-8. мне эти строки добавить?
-
- Power Poster
- Posts: 339
- Joined: Thu Nov 01, 2007 3:11 pm
Re: Русская локаль в 1.5.3
Это исправлено, можно не заморачиваться...root wrote: * 2. В class.admintheme.inc.php в FixSpaces использовать preg_replace('/\s+/u'," ", $str)
Re: Русская локаль в 1.5.3
root, я вообще-то про себя говорил, ОК? Пока можете летать смело, у меня совесть ещё есть 
Wordpress и Joomla! делают по умолчанию SET NAMES UTF-8 при создании таблиц и там в дампе базы прописана кодировка и collation. А CMSMS нет, т.к. она поддерживает больше разных движков баз данных, в т.ч. и PG, а если хотеть портируемых схем такие вещи делать опасно. Если на схемы посмотрите там даже автоинкременты не используются...
В общем либо нормально настраивайте сервер на UTF-8, либо надо раскомментировать SET NAMES UTF-8, дропунить базу и переставить всё. При создании базы, кстати, нужно установить encoding и collation на всякий случай.
Объяснять как исправить сейчас долго...

Wordpress и Joomla! делают по умолчанию SET NAMES UTF-8 при создании таблиц и там в дампе базы прописана кодировка и collation. А CMSMS нет, т.к. она поддерживает больше разных движков баз данных, в т.ч. и PG, а если хотеть портируемых схем такие вещи делать опасно. Если на схемы посмотрите там даже автоинкременты не используются...
В общем либо нормально настраивайте сервер на UTF-8, либо надо раскомментировать SET NAMES UTF-8, дропунить базу и переставить всё. При создании базы, кстати, нужно установить encoding и collation на всякий случай.
Объяснять как исправить сейчас долго...
unsigned double ZYV;
Re: Русская локаль в 1.5.3
спасибо, ребята, за время на меня потраченное, но переустановка не помогла, так я сабж и не победил - что-то делаю не так, так что удачи вам!
Re: Русская локаль в 1.5.3
Ахтунг - это баг!
В стандартной установке функция заголовок новости на самом деле ВСЕГДА преобразуется в кракозябры.
Виноватый: /lib/smarty/plugins/modifier.escape.php
Кодировка жестко прописана.
изменила на
Надо бы в forge это. Но ко мне, как к даме, там очень сурово относятся. Не разговаривають 
В стандартной установке функция заголовок новости на самом деле ВСЕГДА преобразуется в кракозябры.
Виноватый: /lib/smarty/plugins/modifier.escape.php
Кодировка жестко прописана.
Code: Select all
function smarty_modifier_escape($string, $esc_type = 'html', $char_set = 'ISO-8859-1')
Code: Select all
function smarty_modifier_escape($string, $esc_type = 'html', $char_set = 'utf-8')

Re: Русская локаль в 1.5.3
Соня, не надо это в форг... Лучше здесь пиши. То что они с тобой не разговаривают - они козы конечно, но если бы ты не писала здесь что и как исправить-поправить, что бы делали мы, чайники? (в частности мне не не зазорно о себе так писать, поскольку юзаю симпл всего неделю).Sonya wrote: Ахтунг - это баг!
--- skip ----
Надо бы в forge это. Но ко мне, как к даме, там очень сурово относятся. Не разговаривають![]()
А вот за дельный совет - огромное спасибо! Поправил как показано - проблема умерла.
Re: Русская локаль в 1.5.3
Хммм, я тут с Калгаем имел недавно беседу
он зачем-то хотел в 1.5.3 испортить транлитерацию на русский
ладно, может в выходные выделю немножко времни зайти и побеседовать с ним на эту тему тоже...


unsigned double ZYV;