Forums / National / Russian / Тех. поддержка / Бета-впечатления v.0.0.2

<<<12345678910>>>

Тема обсуждения багов

Ratibor
#76 2009-02-04 05:16
Trustmaster
Одно я точно помню, изначально конвертил базу из 1251 в utf-8 я тоже этим скриптом.
Вот только не помню как, давно это было.
Если не разберешься, то на днях постараюсь проделать это снова на питерхосте,
благо пустой сайт там висит и написать всю последовательность действий.
Не задавай глупых вопросов, не услышишь вранья.
Trustmaster
#77 2009-02-04 05:23
Нет не в том дело. Дампер не помог и помочь не может, он восстанавливает базу с точно такими же волшебными кракозябрами. Если есть большое желание, то могу дать дамп для экспериментов (приватно, конечно).
May the Source be with you!
dervan
#78 2009-02-04 05:42
Страсти какие. :)

А что показывает такой запрос к базе (можно из phpMyAdmin)?
SHOW VARIABLES LIKE '%char%'
Trustmaster
#79 2009-02-04 05:52
character_set_client  	utf8
character_set_connection 	utf8
character_set_database 	utf8
character_set_filesystem 	binary
character_set_results 	utf8
character_set_server 	latin1
character_set_system 	utf8
May the Source be with you!
dervan
#80 2009-02-04 06:00
О как. character_set_database и character_set_server - разные. Думал, такого не бывает.
Ratibor
#81 2009-02-04 06:49
В общем сейчас потренировался на базе 1251.

Берем скрипт который я выложил
меняем если требуется эту строку:
define('DBHOST', 'localhost');
остальное пока не трогаем.
делаем бэкап базы.
Теперь открываем полученный *.sql файл в нотепад+

Пролистываем базу до русских символов и если они отображаются нормально и при этом мы видим в правом нижнем углу UNIX ANSI as UTF-8 то все нормально.
Если нет, то надо играться со строкой:
define('CHARSET', 'utf8');
Это может быть к примеру cp1251 или latin1 (зависит от вашей базы)
до тех пор, пока не станет все нормально.

Далее в полученном *.sql файле будут такие строчки:
DEFAULT CHARSET=cp1251
если у вас база была не 1251, то там будет другое.

Так вот это надо заменить на:
DEFAULT CHARSET=utf8

теперь возвращаем, если меняли, строчку:
define('CHARSET', 'utf8');

Заходим в phpmyadmin, уничтожаем базу, вернее все таблицы в ней.
после этого делаем тип сравнения базы utf8_unicode_ci

запускаем dumper.php и восстанавливаем базу из обработанного *.sql файла
Не задавай глупых вопросов, не услышишь вранья.
motor2hg
#82 2009-02-04 09:20
>>>Подробно описал, как конвертировать базу с 1251 -> UTF8

Продолжение следует. Будет описано какие коды(минимум) должны быть добавлены в ядро для Seditio и т.д. А сейчас силы кончились

Ratibor:
Заходим в phpmyadmin, уничтожаем базу, вернее все таблицы в ней.
после этого делаем тип сравнения базы utf8_unicode_ci

Зачем уничтожать! Просто создать новую и потом в конфиг файле seditio or cotonti просто поменять базу. Зачем крайние меры? А если пользователь не справится, то у него куча гимора по восстановлению. Делаем новую базу и сайт переносим в новую папку и только когда полный конверт и базы и сайта (кто не захочет переходить на cotonti) удачен и работает, только в этом случае заменить сайт на сайт с utf8(от конвертированный и проверенный на этом же хостинге).
Кто слазит на cotonti с концами, тому конвертировать только базу. Ссылка выше.
ИМХО
This post was edited by motor2hg (2009-02-04 10:07, 15 years ago)
jcrush
#83 2009-02-04 10:24
кстати после перехода, опросы и статистика сайта сохраняется? а то не хочется терять многолетнюю стату =)
SEO блог: http://blog.stfw.ru/
Ratibor
#84 2009-02-04 15:53
# motor2hg : Зачем уничтожать! Просто создать новую и потом в конфиг файле seditio or cotonti просто поменять базу. Зачем крайние меры?
Ну к примеру не все хостинги позволяют создавать самому базы, вот я и написал.
У себя на локалке я конечно создаю новую базу,
а вот на хостинге приходится очищать базу.
Не задавай глупых вопросов, не услышишь вранья.
Trustmaster
#85 2009-02-04 16:58
Notepad++ спасет мир. Перекодировали дамп из ASCII в UTF8, и все волшебным образом заработало.
May the Source be with you!
Ratibor
#86 2009-02-04 18:22
Trustmaster
Надо бы в config-sample.php раскомментировать по умолчания строку:
$cfg['mysqlcharset'] = 'utf8'; 
и добавить:
$cfg['mysqlcollate'] = 'utf8_unicode_ci'; 

а также прописать в common.php:
sed_sql_query("SET NAMES '{$cfg['mysqlcharset']}' COLLATE '{$cfg['mysqlcollate']}'");

хуже от этого не станет, но вот на глючных серверах головняки отпадут.
Даже мы тут только через несколько месяцев поняли что сайт не в utf-8 :)
Не задавай глупых вопросов, не услышишь вранья.
Trustmaster
#87 2009-02-04 23:12
Раскомментировать не надо, иначе посыплются горы жалоб от тех, у кого не юникод и кто отредактировать эти конфиги не смог.
May the Source be with you!
Ratibor
#88 2009-02-04 23:16
# Trustmaster : Раскомментировать не надо, иначе посыплются горы жалоб от тех, у кого не юникод и кто отредактировать эти конфиги не смог.
А разве такое возможно ?
Все ланг файлы в ютф-8
Не задавай глупых вопросов, не услышишь вранья.
Trustmaster
#89 2009-02-04 23:20
В том числе и у наших эмигрантов (в прямом и переносном смысле тоже)?
May the Source be with you!
Ratibor
#90 2009-02-04 23:20
Я добавил в config-sample.php:
//$cfg['mysqlcollate'] = 'utf8_unicode_ci'; 
и в common.php:
	if (!empty($cfg['mysqlcharset']))
	{
		sed_sql_query("SET NAMES '{$cfg['mysqlcharset']}' COLLATE '{$cfg['mysqlcollate']}'");
	}

Так пойдет ?

P.S. У кого с английским по лучше, там надо ланг файлы поправить.
А то в английские навносили изменений и помалкивают.
Не задавай глупых вопросов, не услышишь вранья.
This post was edited by Ratibor (2009-02-05 01:16, 15 years ago)

<<<12345678910>>>