Автор Тема: Как сменить кодировку БД с latin1?  (Прочитано 2007 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Оффлайн Vis-a-vis

  • Новичок
  • *
  • Сообщений: 13
  • карма: +0/-0
    • Просмотр профиля
    • Блогово ленивого WEB-программиста
Как сменить кодировку БД с latin1?
« : 12 Января 2010, 13:01:10 »
Как правильно сменить кодировку таблицы или поля в MySQL с latin1 на cp1251 или utf8? У моего хостера по-умолчанию кодировка latin1_swedish_ci. Пробовал просто сменить в phpMyAdmine не проканало  :(. Пробовал вот так:
ALTER TABLE table CHANGE c1 c1 BLOB;
ALTER TABLE table CHANGE c1 c1 TEXT CHARACTER SET cp1251;
ALTER TABLE table CONVERT TO CHARACTER SET cp1251;
тоже не помогло  ???
Кто что посоветует?

Оффлайн Rex

  • Administrator
  • 7 уровень
  • *****
  • Сообщений: 1811
  • карма: +15/-0
  • Странник
    • Просмотр профиля
    • ВКГУ им. С. Аманжолова
Re: Как сменить кодировку БД с latin1?
« Ответ #1 : 14 Января 2010, 10:46:00 »
Как правильно сменить кодировку таблицы или поля в MySQL с latin1 на cp1251 или utf8? У моего хостера по-умолчанию кодировка latin1_swedish_ci. Пробовал просто сменить в phpMyAdmine не проканало  :(. Пробовал вот так:
ALTER TABLE table CHANGE c1 c1 BLOB;
ALTER TABLE table CHANGE c1 c1 TEXT CHARACTER SET cp1251;
ALTER TABLE table CONVERT TO CHARACTER SET cp1251;
тоже не помогло  ???
Кто что посоветует?
нужно сделать дамп таблиц - тем же dumper-ом. Потом пересохранить файл в нужной кодировке, проверить в в нем CHARSET и COLLATE и залить его в базу. Все учень просто. Правда немного муторно при больших объемах. Я так делал.

Оффлайн Vis-a-vis

  • Новичок
  • *
  • Сообщений: 13
  • карма: +0/-0
    • Просмотр профиля
    • Блогово ленивого WEB-программиста
Re: Как сменить кодировку БД с latin1?
« Ответ #2 : 14 Января 2010, 11:30:16 »
Цитировать
нужно сделать дамп таблиц - тем же dumper-ом. Потом пересохранить файл в нужной кодировке, проверить в в нем CHARSET и COLLATE и залить его в базу. Все учень просто. Правда немного муторно при больших объемах. Я так делал.
Спасибо :). А как пересохранить файл из latin1 в нужную кодировку? В Текстовом редакторе?

Оффлайн Rex

  • Administrator
  • 7 уровень
  • *****
  • Сообщений: 1811
  • карма: +15/-0
  • Странник
    • Просмотр профиля
    • ВКГУ им. С. Аманжолова
Re: Как сменить кодировку БД с latin1?
« Ответ #3 : 14 Января 2010, 12:15:44 »
Цитировать
нужно сделать дамп таблиц - тем же dumper-ом. Потом пересохранить файл в нужной кодировке, проверить в в нем CHARSET и COLLATE и залить его в базу. Все учень просто. Правда немного муторно при больших объемах. Я так делал.
Спасибо :). А как пересохранить файл из latin1 в нужную кодировку? В Текстовом редакторе?
ну да :)

Для Utf-8:

В блокноте "Сохранить как", кодировка "UTF-8".
В Notepad++ "Кодировки"->"Преобразовать в UTF-8 без BOM"
И, собвственно все, осталось только залить дамп в базу. Базу сразу лучше создать в кодировке utf_genaral_ci - чтобы создаваемые таблицы созхдавались по умолчанию в этой кодировке.

Для cp1251 таких танцов с бубном не нужно, можно сразу заливать. Правда, по поводу спецсимволов из казахского языка я не ручаюсь, могут и неотображаться потом.

Оффлайн Vis-a-vis

  • Новичок
  • *
  • Сообщений: 13
  • карма: +0/-0
    • Просмотр профиля
    • Блогово ленивого WEB-программиста
Re: Как сменить кодировку БД с latin1?
« Ответ #4 : 15 Января 2010, 20:19:03 »
пасиб, буду пробовать :) правда я пробовал в Notepad++ не получилось, лан попробую еще разок  :)

Оффлайн Vis-a-vis

  • Новичок
  • *
  • Сообщений: 13
  • карма: +0/-0
    • Просмотр профиля
    • Блогово ленивого WEB-программиста
Re: Как сменить кодировку БД с latin1?
« Ответ #5 : 17 Января 2010, 13:21:32 »
Чет нифига не получается  :-[

Оффлайн Rex

  • Administrator
  • 7 уровень
  • *****
  • Сообщений: 1811
  • карма: +15/-0
  • Странник
    • Просмотр профиля
    • ВКГУ им. С. Аманжолова
Re: Как сменить кодировку БД с latin1?
« Ответ #6 : 18 Января 2010, 10:17:28 »
Цитата: Vis-a-vis
Чет нифига не получается  :-[
Как ты делал напиши полностью.

Оффлайн Vis-a-vis

  • Новичок
  • *
  • Сообщений: 13
  • карма: +0/-0
    • Просмотр профиля
    • Блогово ленивого WEB-программиста
Re: Как сменить кодировку БД с latin1?
« Ответ #7 : 19 Января 2010, 14:03:31 »
Экспортировал базу с phpMyAdmin на хостинге. База в latin1_swedish_ci, вся в кракозябрах. Открыл ее в Notepad++, в пункте Кодировки выбрал преобразовать в UTF-8 без BOM. После этого все удалилось кроме двух первых слов, и база стала весить 1кб  :o.
Че за фигня?  ???
Правда сайт отображается нормально, но хотелось бы перевести базу с latin1 в utf-8.

Оффлайн Rex

  • Administrator
  • 7 уровень
  • *****
  • Сообщений: 1811
  • карма: +15/-0
  • Странник
    • Просмотр профиля
    • ВКГУ им. С. Аманжолова
Re: Как сменить кодировку БД с latin1?
« Ответ #8 : 19 Января 2010, 16:34:39 »
Экспортировал базу с phpMyAdmin на хостинге. База в latin1_swedish_ci, вся в кракозябрах. Открыл ее в Notepad++, в пункте Кодировки выбрал преобразовать в UTF-8 без BOM. После этого все удалилось кроме двух первых слов, и база стала весить 1кб  :o.
Че за фигня?  ???
Правда сайт отображается нормально, но хотелось бы перевести базу с latin1 в utf-8.
ясно. Неправильно. Берем дампер - тот же "Sypex Dumper 2". Ставим на хостинг, настраиваем. Как это делается думаю разберешься, инфы хватает. Делаем им бэкап, скачиваем. Бэкап должен быть читабельным когда его откроем Notepad++, то есть все буквы читаются. Потом жмем на "Кодировки"->"Преобразовать в UTF-8 без BOM" и сохраняем. Теперь только загружаем его с помощью того же PhpMyAdmin-а

Оффлайн Vis-a-vis

  • Новичок
  • *
  • Сообщений: 13
  • карма: +0/-0
    • Просмотр профиля
    • Блогово ленивого WEB-программиста
Re: Как сменить кодировку БД с latin1?
« Ответ #9 : 19 Января 2010, 19:43:35 »
Рахмет, буду пробовать  :)

Оффлайн Niх

  • Новичок
  • *
  • Сообщений: 7
  • карма: +0/-0
    • Просмотр профиля
Re: Как сменить кодировку БД с latin1?
« Ответ #10 : 02 Марта 2010, 18:46:35 »
а я бы сделал так:
mysql_query("SET NAMES cp1251");
mysql_query("SET CHARACTER SET cp1251");
(в начале каждой страницы)

Оффлайн Rex

  • Administrator
  • 7 уровень
  • *****
  • Сообщений: 1811
  • карма: +15/-0
  • Странник
    • Просмотр профиля
    • ВКГУ им. С. Аманжолова
Re: Как сменить кодировку БД с latin1?
« Ответ #11 : 04 Марта 2010, 17:13:28 »
а я бы сделал так:
mysql_query("SET NAMES cp1251");
mysql_query("SET CHARACTER SET cp1251");
(в начале каждой страницы)
это если вы туда писали под этой кодировкой. в противном случае же будет та же проблема - нечитаемые символы.
И не в начале страницы, а после подключения к базе данных. Одного раза достаточно.

Оффлайн _AXE_

  • 3 уровень
  • ***
  • Сообщений: 235
  • карма: +5/-4
  • Продвинутый Uzer:)
    • Просмотр профиля
    • Молодежный чат
Re: Как сменить кодировку БД с latin1?
« Ответ #12 : 10 Марта 2010, 13:35:34 »
Проблемы с кодировкой в MySQL всегда будут вызывать вопросы...:)
Профессионализм - это, в первую очередь, умение оценить меру своей некомпетентности.

Приглашаю в тему обсуждения сайта licos.kz

Мой личный блог Александр Смирнов