Задавайте вопросы, мы ответим
Вы не зашли.
Уважаемые программисты - столкнулся вот с такой проблемой
Есть база на mysql. Кодировка по умолчанию cp1251. Нужно её перенести в базу на utf8. Сейчас посмотрел базу, а там..."непонятные символы":
СплэС?-страница
Почитав документацию, понял, что нужно конвертировать данные, но ничего не получилось. В мануале сказано, что нужно сначало перевести текстовые поля в binary, а потом наоборот с указанием кодировки.
Пробую преобразовать текстовые поля в тип binary:
ALTER TABLE modx_site_content
MODIFY pagetitle BINARY(100);
Получаю ошибку:
#1283 - Column 'pagetitle' cannot be part of FULLTEXT index
Пожалуйста, помогите!
Неактивен
Я рекомендую почитать вам статьи
http://sqlinfo.ru/articles/info/5.html
http://sqlinfo.ru/articles/info/2.html
там очень хорошо описано всё, что связано с кодировками. Для осуществления описанного вами переноса ничего перекодировать не нужно, так как сервер MySQL автоматически изменяет кодировку строк при занесении данных в таблицу и при выборке данных из таблицы. Нужно лишь, чтобы он правильно понимал в какой кодировке работает клиент. Указать это можно с помощью команды SET NAMES имя_кодировки;
В вашем случае в начале дампа нужно поместить SET NAMES cp1251;
Неактивен
Если вс же хотите перекодировать таблицу, то проще всего создать новую таблицу в нужной кодировке и выполнить
INSERT INTO new_table SELECT * FROM old_table;
В Вашем случае, перед модификацией нужно удалить FULLTEXT-индекс, а потом создать снова.
Неактивен
Спасибо - очень помогли ! Огромный плюс вашему форуму ) Теперь всё нормально работает и нет крякозябр
Неактивен