
но вместо дат на русском (допустим 16 Апр 2008) вылазит что-то вроде "16 [glow=red,2,300]? ? ? ?[/glow] 2008"
кто знает, что нужно поправить в базе? А точнее даже: как это можно поправить?
я залез в базу, там вместо дат на русском, все теже ромбики с вопросами... может все-таки дело в базе?ZYV wrote: Я думаю к базе это никакого отношения не имеет, а вот к активной системной локали на основании параметров которых date генерирует дату - да. Я бы выяснил какие апгрейды ПО проводились на сервере и надавал бы виновным по шапкам.
Code: Select all
$config['locale'] = '';
Code: Select all
$config['locale'] = 'ru_RU.UTF-8';
да, была пустая строчка. Вставил 'ru_RU.UTF-8';, к сожалению не помогло... буду думать дальше, спасибо.Sonya wrote: Может и не в базе. У меня сбились настройки после обновления php на сервере. До обновления в config.php стоялои все работало.Code: Select all
$config['locale'] = '';
После обновления пошли ромбики, прописалаи все опять заработало. Может поможет.Code: Select all
$config['locale'] = 'ru_RU.UTF-8';
И еще вот тут по всем пунктам проверить http://forum.cmsmadesimple.org/index.ph ... l#msg98448
Code: Select all
SET NAMES cp1251
Code: Select all
$config['locale'] = 'ru_RU.win1251';
Code: Select all
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Code: Select all
<meta http-equiv="Content-Type" content="text/html; charset=win-1251" />
Code: Select all
sed -e 's/latin1/utf8/g' -i dump.sql
Code: Select all
sed -e 's/utf8/cp1251/g' -i dump.sql
Начал танцевать,Sonya wrote: Плясать нужно от базы данных:
1a Что стоит в поле Kollation в колонке, которая болеет?
1b Что стоит в Kollation таблицы, в которой колонка, которая болеет?
1с Что стоит в Kollation для всей базы данных?
2. Если у тебя база сделана в русской кодировке windows, то нужно прописывать в include.phpА не utf8.Code: Select all
SET NAMES cp1251
3. В config.php попробуйCode: Select all
$config['locale'] = 'ru_RU.win1251';
4. Дальше, что стоит в meta http-equiv на странице?илиCode: Select all
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Тоже в зависимости от кодировки поставить.Code: Select all
<meta http-equiv="Content-Type" content="text/html; charset=win-1251" />
Если у тебя кодировочный салат, то советую один раз перекодировать всю базу в то, что тебе надо, при помощи команды sed, выполненной на sql dump твоей базы. Пример перевода из latin1 в utf8или из utf8 в кодировку windowsCode: Select all
sed -e 's/latin1/utf8/g' -i dump.sql
Только учти, что при втором варианте, все, что не переводится в кодировку windows, ü, ö, ä - например, заменится на кракозябры.Code: Select all
sed -e 's/utf8/cp1251/g' -i dump.sql
Чисто по собственному опыту, всегда все делаю на utf8. Индексируется и в yandex и в rambler на ура.
Хорошо, что в базе данных, все одинаково. По крайней мере там салата нет.ilia3d wrote: В базе везде kollation стоит на "cp1251_general_ci".
Мда...ilia3d wrote: Мда...
В метатегах, конфиге - utf8
Во-первых, проще. Во-вторых, если страница на 100% русская и пользователи контент не пишут, то можно не заморачиваться на utf8. Но если на странице есть тексты на разных языках или комменты для пользователей (а они и на китайском иногда пишут:), то аккуратней будет переделать все в utf8, но для этого нужно немного помучиться.ilia3d wrote: Проще конечно вернуть настройки назад на 1251, но мне не хотелось бы этого делать )
Команда sed выполняется в командной строке сервера. Перед тем, как я начну объяснять. У тебя установлен mysql в локалке или есть доступ ssh на сервер? Если ни то, ни другое, то тогда никак.ilia3d wrote: А команда sed, ее надо выполнять из SQL окошка, я правильно понял? Если нет, то откуда?![]()
И конвертирует и меняет (и вышивать умеетilia3d wrote:Я так понимаю sed именно конвертирует, а не меняет Kollation?
ну как сказать... я не сидел сложа руки, так что уже естьХорошо, что в базе данных, все одинаково. По крайней мере там салата нет.
Как-то звучит необнадеживающе )Мда... Smiley Нехорошо.
увы... мультиланг. Да и опять же, рамблеры всякие лучше индексировать должны.Во-первых, проще. Во-вторых, если страница на 100% русская и пользователи контент не пишут, то можно не заморачиваться на utf8. Но если на странице есть тексты на разных языках или комменты для пользователей (а они и на китайском иногда пишутSmiley, то аккуратней будет переделать все в utf8, но для этого нужно немного помучиться.
предпочитаю помучиться (с) СуховВо-первых, проще. Во-вторых, если страница на 100% русская и пользователи контент не пишут, то можно не заморачиваться на utf8. Но если на странице есть тексты на разных языках или комменты для пользователей (а они и на китайском иногда пишутSmiley, то аккуратней будет переделать все в utf8, но для этого нужно немного помучиться.
Понятненько... ничегошеньки нет. Все на удаленном сервере, а админы там такие редиски, что вспоминать не хочется.Команда sed выполняется в командной строке сервера. Перед тем, как я начну объяснять. У тебя установлен mysql в локалке или есть доступ ssh на сервер? Если ни то, ни другое, то тогда никак.
Code: Select all
<?php
global $db_url;
$database = parse_url($db_url);
$result = db_query('show tables');
while($tables = db_fetch_array($result)) {
foreach ($tables as $key => $value) {
db_queryd("ALTER TABLE %s COLLATE utf8_general_ci",$value);
}
}
?>
В таком случае utf8 просто необходим.ilia3d wrote: увы... мультиланг. Да и опять же, рамблеры всякие лучше индексировать должны.
хороший настройilia3d wrote: предпочитаю помучиться (с) Сухов
Знаешь, меня бы испугал такой вариант. То есть у тебя лично на компе даже копии твоего сайта нет? А если у редисок завтра накроется сервер, что тогда?ilia3d wrote: Понятненько... ничегошеньки нет. Все на удаленном сервере, а админы там такие редиски, что вспоминать не хочется.
Это чудо тебе не поможет, потому что оно просто поменяет Kollation (причем только в таблицах, а в колонках останется 1251). А тебе нужно еще и конвертировать базу данных. То есть, как ни крути, тебе нужен доступ на командную строку mysqlilia3d wrote: Я тут скрипт нашел, на php, вроде как тупо выполняет по всем базам команду ALTER. Но не нашел описания, как это безобразие использовать.
я тоже так думаю.В таком случае utf8 просто необходим.
Спасибо за наводку ) почитал, посмотрел - как-то запутано все с установкой... До этого я слышал про XAMPP - вот его и водрузил, все работает вроде бы )хороший настрой Smiley Тогда тебе первое задание: установи WAMP у себя на компьютере. Вот так http://sqlinfo.ru/articles/info/6.html например. Как только установишь. Переноси свой CMS и базу данных в локалку и можно будет играться.
тогда буду восстанавливаться из бэкапа ) не очень регулярно, но делаю )Знаешь, меня бы испугал такой вариант. То есть у тебя лично на компе даже копии твоего сайта нет? А если у редисок завтра накроется сервер, что тогда?
как я написал в соседней ветке - помогло ручное перекодирование дампа, и перезаливка базы... слава богу она относительно маленькая.Это чудо тебе не поможет, потому что оно просто поменяет Kollation (причем только в таблицах, а в колонках останется 1251). А тебе нужно еще и конвертировать базу данных. То есть, как ни крути, тебе нужен доступ на командную строку mysql Sad