Форум сетевых администраторов
Показаны 12 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- MySQL (http://netadmin.ws/forum/forumdisplay.php?forumid=40)
-- Как базу mysql переделать из кодировки win-1251 в unicode (utf-8)? (http://netadmin.ws/forum/showthread.php?threadid=10903)


Помещено Varsosnill 02-08-2005 в 20:09:

Как базу mysql переделать из кодировки win-1251 в unicode (utf-8)?

Как базу mysql переделать из кодировки win-1251 в unicode (utf-8)? Доступа ssh нет, но базу могу слить из инета и конвертнуть под WindowsXP. Вопрос только - чем?

__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla


Помещено ALc 26-10-2005 в 01:37:

Varsosnill, можно попробовать вот так:

iconv -f WINDOWS-1251 -t UTF-8 db1251.sql > dbutf8.sql

Ð_асскажи, что получится


Помещено Xrobak 26-10-2005 в 13:50:

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


Помещено polo 27-10-2005 в 07:44:

quote:
после конвертации я так понял что размер базы увеличится если не вдвое, то в несколько раз, да?

Интересно, это почему же? На днях нужно проделать аналогичное, посмотрим что будет.

__________________
Всегда есть решение.


Помещено RaZEr 27-10-2005 в 12:22:

quote:
Как базу mysql переделать из кодировки win-1251 в unicode (utf-8)?
Насколько я знаю, mysql сам пытается произвести конвертацию при изменении кодировки данных. Что касаемо дампа, то он обычно делается в UTF-8 (для mysql 4/5) и для конвертации достаточно исправить кодировку в "CREATE TABLE" блоках.

quote:
Интересно, это почему же?
Юникод использует два байта (и более) для хранения всех символов, за исключением символов первой части ASCII-таблицы. Поэтому если текст не на англ. языке, то размер может существенно возрасти.

__________________
The time was broken ...


Помещено ALc 27-10-2005 в 12:31:

quote:
Насколько я знаю, mysql сам пытается произвести конвертацию при изменении кодировки данных. Что касаемо дампа, то он обычно делается в UTF-8 (для mysql 4/5) и для конвертации достаточно исправить кодировку в "CREATE TABLE" блоках.
А мне казалось, что MySQL (начиная с версий 4.1х) может на лету конвертировать выдаваемые данные в любую кодировку, но сами данные существующей базы при этом не конвертируются.

А дамп делается в UTF-8 по умолчанию кажется тоже только версиями от 4.1х, т.к. UTF-8 стала кодировкой по умолчанию этой линейки.

Неужели я заблуждаюсь ?


Помещено Xrobak 27-10-2005 в 19:10:

polo, вот я это и имел ввиду:

quote:
Поэтому если текст не на англ. языке, то размер может существенно возрасти.


Помещено Varsosnill 27-10-2005 в 19:37:

quote:
Varsosnill, можно попробовать вот так:
iconv -f WINDOWS-1251 -t UTF-8 db1251.sql > dbutf8.sql

это где именно надо проделать? у меня нет доступа по ssh..

__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla


Помещено polo 27-10-2005 в 21:05:

quote:
это где именно надо проделать?
это и у себя на компе можешь сделать, установи iconv и вперед, хотя Ultraedit рулит.

polo добавил 27-10-2005 в 21:09:43:
не знаю что там пытается сделать и конвертировать mysql, но добиться правильного отображения данных (не на английском) при помощи phmyadmin просто невозможно. Да и дамп нормальный получить тоже не реально, все символы искажаются.

__________________
Всегда есть решение.


Помещено RaZEr 27-10-2005 в 21:10:

quote:
Ultraedit рулит
Вообщем да, хотя я сталкивался с дампами, которые после перекодировки в UE выдавали ошибку синтаксиса (при загрузке в базу).

__________________
The time was broken ...


Помещено polo 27-10-2005 в 23:30:

Ну это часто бывает с полями типа BLOB содержащие бинарные данные, практика показывает что они вообще очень плохо переносимы.

__________________
Всегда есть решение.


Помещено he][es 28-10-2005 в 23:16:

Покорнейше прошу прощения за оффтоп, сёдня поставил (ура-ура) My 5.0.15 (не упущу возможности спросить: "Все вкурсе что 5ая верка перешла в разряд релаза/стабильной?"). Так вот, по поводу дампа, сделал:
mysqldump.exe --opt -u root -p --all-databases > all.sql
Потом соответственно:
mysql.exe -u root -p < all.sql
И... запарился ошибки убирать. Спотыкалась она в самых непонятных местах. типа CREATE DATABASE sun;
А вот CREATE DATABASE sunn; ему понравилось, точнее БД sun он создал, но use её не смог, или ещё чего то подобное, т.к. таблицы в неё он не добавил, а в sunn без проблем. такая же фигня с БД vb получилась, vbull проканал. И ещё в паре мест споткнулся...

__________________
Админ - вождь Апачей...


Формат времени GMT. Текущее время 07:19.
Показаны 12 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.