Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> latin1 -> cp1251 -> ?utf8? 
V
    Опции темы
SKIF52
Дата 23.5.2008, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 6.7.2005
Где: NNOV

Репутация: нет
Всего: нет



Есть база данных на mysql  5.0.45 с довольно интересной историей. Насколько я понял по факту (с самого начала) данные в ней находились в кодировке latin1 . 

Потом ее перевели в cp1251 (каким образом — не известно, похоже в редакторе сменили кодировку дампа, поправили там же DEFAULT CHARSET, и залили обратно). 

Сейчас данные в ней нужно корректно сконвертировать в utf8. 

Что пробовал делать:
— менять кодировку дампа базы на utf8 (много разных текстовых редакторов и конвертеров ) и заливать обратно sypex dumper'ом, предварительно выставив в нем 
Код

// Кодировка соединения с MySQL при восстановлении
// На случай переноса со старых версий MySQL (до 4.1), у которых не указана кодировка таблиц в дампе
// При добавлении 'forced->', к примеру 'forced->cp1251', кодировка таблиц при восстановлении будет принудительно заменена на cp1251
// Можно также указывать сравнение нужное к примеру 'cp1251_ukrainian_ci' или 'forced->cp1251_ukrainian_ci'

define('RESTORE_CHARSET', 'forced->utf8');


— менять запросом к БД.
Код

ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;


На данный момент эффекта нет.

Правда есть мнение, что что-то сделать все-таки можно. Например с помощью такой конструкции
Код

ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;


Это отсюда вот статья.

Вообщем попробовать можно, но опять же тут нужно для каждой таблицы (их 150 штук) поля прописывать, и не совсем ясен эффект от такого запроса, потому как в mysql плохо ориентируюсь на данный момент (

Посоветуйте как нужно это (cp1251->utf8) правильно сделать?
PM ICQ   Вверх
Feldmarschall
Дата 23.5.2008, 12:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 3
Всего: 32



Сконвертировать дамп, поменять чарсет у всех create table и залить обратно.

а после этого убедиться, что возникающие проблемы действительно происходят от того, что база не сконвертировалась, а не от каких-то других причин.
для этого надо внимательно анализировать происходящее и выводимое на экран, а не разводить руками "эффекта нет". 
Эффект всегда бывает. просто не всегда он положительный. При этом отрицательный может проявляться во множестве разных форм и давать пищу для размышлений.

Скрипты твои знают, что база у них теперь в утф?
PM   Вверх
SKIF52
Дата 23.5.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 6.7.2005
Где: NNOV

Репутация: нет
Всего: нет



Цитата(Feldmarschall @  23.5.2008,  12:56 Найти цитируемый пост)
а не разводить руками "эффекта нет". 

под эффектом имеется ввиду факт решения проблемы. )

Скрипт-то как раз первым узнает. Собственно это форум vBulletin. Проявляется в том, что куда-то исчезает массив forumcache, из-за чего выскакивают ошибки до отправки header'ов, по этой же прирчине не устанавливаются куки и далее со всеми вытекающими.

Это если в конфиге форума присутствует строчка $config['Mysqli']['ini_file'] = 'utf8'; Если закоментировать шаблоны отдаются как windows-1251 и получаются каракулями, а сообщения, темы и все прочее — ???????????? ???? ????. Вот такие собственно симптомы у больного.

При просмотре через phpMyadmin кодировка в браузере utf-8, все прекрасно отображается, а вот отдается не пойму как.

Цитата(Feldmarschall @  23.5.2008,  12:56 Найти цитируемый пост)
Сконвертировать дамп, поменять чарсет у всех create table и залить обратно.

чарсет автоматически меняется дампером насколько я понимаю

Это сообщение отредактировал(а) SKIF52 - 23.5.2008, 14:52
PM ICQ   Вверх
Feldmarschall
Дата 23.5.2008, 16:32 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 3
Всего: 32



При чем здесь форум? ты с форумом работаешь, или с БД?
если при просмотре через phpMyadmin все прекрасно отображается, то почему вопрос вообще про дамп и заливку, а не про форум вбуллетин?
Ну хоть какая-то логика в действиях должна быть?

взял, написал скрипт из трех строчек, который выводит данные из базы. посмотрел - все ли правильно выводит.
если все выводит нормально - какие претензии к базе?

откуда такая уверенность, что единственная настройка форума отвечает за все операции, связанные с кодировкой?

браузер у тебя знает, что получает утф?

Добавлено @ 16:35
Цитата(SKIF52 @  23.5.2008,  14:51 Найти цитируемый пост)
под эффектом имеется ввиду факт решения проблемы.

об этом и речь. 
а должны иметься ввиду - подробности. реакция системы на твои действия. анализируя которые можно исправить ситуацию.
не бывает застывшего знания. Не бывает волшебной ИНСТРУКЦИИ, за которой вы все приходите на форум - как файлы заливать, как БД настроить.
Бывает только ПРОЦЕСС. Процесс отладки.
Залить дамп - это два действия. Настроить кодировку - тоже.
Но в том-то и дело, что бывают тыщи нюансов, которые надо отлавливать и исправлять, Нюансов, которые не предусмотрит ни одна инструкция. и здесь уже требуется не инструкция, а осмысленные действия.


Это сообщение отредактировал(а) Feldmarschall - 23.5.2008, 16:42
PM   Вверх
SKIF52
Дата 23.5.2008, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 6.7.2005
Где: NNOV

Репутация: нет
Всего: нет



Проблема решена, база сконвертированна и работает. Всем спасибо.  smile 

Это сообщение отредактировал(а) SKIF52 - 23.5.2008, 23:14
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0661 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.