Тема обсуждения багов
Ratibor |
|
---|---|
Trustmaster
Одно я точно помню, изначально конвертил базу из 1251 в utf-8 я тоже этим скриптом. Вот только не помню как, давно это было. Если не разберешься, то на днях постараюсь проделать это снова на питерхосте, благо пустой сайт там висит и написать всю последовательность действий. Не задавай глупых вопросов, не услышишь вранья.
|
Trustmaster |
|
---|---|
Нет не в том дело. Дампер не помог и помочь не может, он восстанавливает базу с точно такими же волшебными кракозябрами. Если есть большое желание, то могу дать дамп для экспериментов (приватно, конечно).
May the Source be with you!
|
dervan |
|
---|---|
Страсти какие. :)
А что показывает такой запрос к базе (можно из phpMyAdmin)? SHOW VARIABLES LIKE '%char%' |
Trustmaster |
|
---|---|
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 |
|
---|---|
О как. character_set_database и character_set_server - разные. Думал, такого не бывает.
|
Ratibor |
|
---|---|
В общем сейчас потренировался на базе 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 |
|
---|---|
>>>Подробно описал, как конвертировать базу с 1251 -> UTF8
Продолжение следует. Будет описано какие коды(минимум) должны быть добавлены в ядро для Seditio и т.д. А сейчас силы кончились Ratibor: Зачем уничтожать! Просто создать новую и потом в конфиг файле seditio or cotonti просто поменять базу. Зачем крайние меры? А если пользователь не справится, то у него куча гимора по восстановлению. Делаем новую базу и сайт переносим в новую папку и только когда полный конверт и базы и сайта (кто не захочет переходить на cotonti) удачен и работает, только в этом случае заменить сайт на сайт с utf8(от конвертированный и проверенный на этом же хостинге). Кто слазит на cotonti с концами, тому конвертировать только базу. Ссылка выше. ИМХО |
|
Bu gönderi motor2hg tarafından düzenlendi (2009-02-04 10:07, 16 yıllar önce) |
jcrush |
|
---|---|
кстати после перехода, опросы и статистика сайта сохраняется? а то не хочется терять многолетнюю стату =)
SEO блог: http://blog.stfw.ru/
|
Ratibor |
|
---|---|
# motor2hg : Зачем уничтожать! Просто создать новую и потом в конфиг файле seditio or cotonti просто поменять базу. Зачем крайние меры?Ну к примеру не все хостинги позволяют создавать самому базы, вот я и написал. У себя на локалке я конечно создаю новую базу, а вот на хостинге приходится очищать базу. Не задавай глупых вопросов, не услышишь вранья.
|
Trustmaster |
|
---|---|
Notepad++ спасет мир. Перекодировали дамп из ASCII в UTF8, и все волшебным образом заработало.
May the Source be with you!
|
Ratibor |
|
---|---|
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 |
|
---|---|
Раскомментировать не надо, иначе посыплются горы жалоб от тех, у кого не юникод и кто отредактировать эти конфиги не смог.
May the Source be with you!
|
Ratibor |
|
---|---|
# Trustmaster : Раскомментировать не надо, иначе посыплются горы жалоб от тех, у кого не юникод и кто отредактировать эти конфиги не смог.А разве такое возможно ? Все ланг файлы в ютф-8 Не задавай глупых вопросов, не услышишь вранья.
|
Trustmaster |
|
---|---|
В том числе и у наших эмигрантов (в прямом и переносном смысле тоже)?
May the Source be with you!
|
Ratibor |
|
---|---|
Я добавил в 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. У кого с английским по лучше, там надо ланг файлы поправить. А то в английские навносили изменений и помалкивают. Не задавай глупых вопросов, не услышишь вранья.
|
|
Bu gönderi Ratibor tarafından düzenlendi (2009-02-05 01:16, 16 yıllar önce) |