windows-1252 to utf8 (dbf)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Davsharyan
Сообщения: 39
ОС: Debian Lenny

windows-1252 to utf8

Сообщение Davsharyan »

Баревнер.

Есть база в формате dbf в котором дата кодировано на Windows1252.

Задача:
Залить эту базу в мускульную у которого кодировка utf8 и обратно из мускула сделать dbf
<<EOF
everything that has a beginning has an end as well...
EOF
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: windows-1252 to utf8

Сообщение sciko »

Спасибо сказали:
Аватара пользователя
Davsharyan
Сообщения: 39
ОС: Debian Lenny

Re: windows-1252 to utf8

Сообщение Davsharyan »

Ну да, утилита хорошая, работает.
Буквально - первое это пробовал (:

А что порекомендуете для перекодировки с windows1252->utf8 ?
<<EOF
everything that has a beginning has an end as well...
EOF
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: windows-1252 to utf8

Сообщение sciko »

iconv
Спасибо сказали:
Аватара пользователя
Davsharyan
Сообщения: 39
ОС: Debian Lenny

Re: windows-1252 to utf8

Сообщение Davsharyan »

уппс, сори, насчёт latin1 не видел. шас попробую

Там вроде Windows-1252 почти тоже самое, что и latin1 и ISO 8859-1
сделаю ка базу латин1.
<<EOF
everything that has a beginning has an end as well...
EOF
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: windows-1252 to utf8

Сообщение sciko »

Единственное автор по ссылке забыл написать что mysqldump должен быть с опцией --hex-blob (иначе iconv попортит данные).
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: windows-1252 to utf8

Сообщение Ism »

Если вы экспортируете в mysql из своей программы, то при подключении выполните команду SET NAMES win1252; , она говорит серверу в какой кодировке клиент посылает ему данные.

Или вот это
http://www.sqlmanager.net/en/products/mysql/manager/download

EMS SQL Manager for MySQL Freeware (ограничение базы 100 Мб)

там кажется есть импорт, экспорт , работает под wine
Спасибо сказали:
Аватара пользователя
Davsharyan
Сообщения: 39
ОС: Debian Lenny

Re: windows-1252 to utf8

Сообщение Davsharyan »

Черти, не правельно сказали кодировку, мучался час. там не windows1252 a armscii8.

Спс sciko

и маленкий скрипт может пригодится. это copy/paste и поправка немножко

Код: Выделить всё

#!/bin/bash

dbuser="root"
dbpass="pass"

tablename="data"

dbout="latin1"
dbin="utf8"

echo "dbf to mysql"
dbf2mysql -d ${dbout} -t ${tablename} -c -P ${dbpass} -U ${dbuser} baza.dbf

echo "mysqldump w/ latin1"
mysqldump -u${dbuser} -p${dbpass} --hex-blob --default-character-set=latin1 ${dbout} ${tablename} > out.sql

echo "converting - iconv"
iconv -f armscii-8 -t utf-8 -c out.sql > outtmp.sql

echo "sedddding"
more outtmp.sql|sed 's/latin1/utf8/g' > out.sql

echo "drop data from ${dbin}"
mysql -u${dbuser} -p${dbpass} -e "delete from ${tablename}" ${dbin}

echo "import to database"
mysql --default-character-set=utf8 -u${dbuser} -p${dbpass} ${dbin} < out.sql

echo "deleting temp files"
rm out.sql & rm outtmp.sql

exit 0
<<EOF
everything that has a beginning has an end as well...
EOF
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: windows-1252 to utf8

Сообщение sciko »

Для таких случаев существует enconv.
Но ИМХО он уж очень часто глючит.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: windows-1252 to utf8

Сообщение sash-kan »

Davsharyan писал(а):
23.03.2011 15:17
armscii8
в натуре однобайтный армянский? круто. даже не слыхал про такую. наверно, я не армянин.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: