Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> пернос данных из postgres в dbf dos, руские буквы, проблемма с кодировкой 
V
    Опции темы
izver84
Дата 30.8.2016, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день. 

Необходимо выгрузить данные из postgres в dbf dos
База postgres в кодировке UTF8

прога
Код

use DBD::XBase;
use DBI;
use Encode qw /from_to/;
$dbname = "sbit";
$username = "postgres";
$password = "syrus";
$dbhost = "192.168.1.171";

my $dir = "/home/pavelp/sbit/1Pavel/prihod/";

my $xbase_dbh = DBI->connect("DBI:XBase:$dir", undef, undef, {RaiseError =>1});
$dbh = DBI->connect("dbi:Pg:dbname=$dbname;host=$dbhost","$username","$password",
            {PrintError => 0});

if ($DBI::err != 0) {
  print $DBI::errstr . "\n";
  exit($DBI::err);
}

my $sel = "SELECT nvpr_inc,datd,'06130' AS kpot,nd,kol,kvpr_inc FROM xml_prihod_inc where kvpr_inc='1114'";#запрос из базы

$sth = $dbh->prepare($sel);
$rv = $sth->execute();


@st=();
while (  @row = $sth->fetchrow_array)
{
 foreach $st(@row)
{push(@st,$st."\t");}


$qw="Insert into prihinc (nam_kvpr,datd,kpot,nd,kol,kvpr_i) values('$st[-6]','$st[-5]','$st[-4]','$st[-3]',$st[-2],'$st[-1]')"; # запись в dbf
Encode::from_to ($qw, 'utf8', 'cp866');  # кодировка текста из UTF8 в cp866 
my $sel_csr = $xbase_dbh->prepare($qw);
$sel_csr->execute();
}




Прога работает прекрасно пока не появляются русские буквы 
вместо 
Код

Insert into prihinc (nam_kvpr,datd,kpot,nd,kol,kvpr_i) values('Сырный продукт 'Русский'вес 50% жир.    ','160818    ','06130    ','0759750    ',1.673    ,'1114    ')


получаю 
Код

Insert into prihinc (nam_kvpr,datd,kpot,nd,kol,kvpr_i) values('������ �த��� '���᪨�'��� 50% ���.    ','160818    ','06130    ','0759750    ',1.673    ,'1114    ')





Не понятно. Как быть?


--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
Romikgy
Дата 30.8.2016, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



файл перла тоже в UTF8 ?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
arto
Дата 30.8.2016, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

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



Кодировка везде правильная?
PM MAIL ICQ   Вверх
izver84
Дата 1.9.2016, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Romikgy @ 30.8.2016,  16:55)
файл перла тоже в UTF8 ?

Да. 
Код

text/plain; charset=utf-8


Опреционая система MINT(Linux)



--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
Bulat
Дата 1.9.2016, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



У меня такое тож иногда бывает! Спасаюсь только модулем Encode  smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
izver84
Дата 2.9.2016, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Bulat @ 1.9.2016,  14:09)
У меня такое тож иногда бывает! Спасаюсь только модулем Encode  smile

Код

Encode::from_to ($qw, 'utf8', 'cp866'); 


так почему то не работает

Добавлено через 14 минут и 36 секунд
решил

Код

Encode::from_to ("$qw", 'utf8', 'cp866');


это для линукса



--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




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


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

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