The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"MS Access MDB + unixODBC + perl. Проблемы с русским."
Отправлено nx90009, 17-Мрт-09 00:20 
Привет всем.
Есть база mdb(M$ Access). Есть простенький интерфейс к ней(формы, отчеты), написанный ср-вами самого Access'а. Было принято решение уйти с Access'а на PostgreSQL(дабы отвязаться от пакета M$ Office). Хочется сделать такой переход плавным. Т.е. юзеры будут продолжать работать через интерфейс Аксеса, а я тем временем буду писать веб-интерфейс на Perl + DBI.
Подключаюсь к базе средствами DBI + ODBC.В общем-то работает.. кроме русского. кодировка CP1251 есесно.
Имею:
# more /etc/unixODBC/odbc.ini
[mdb_test_01]
Description = Microsoft Access Database
Driver = MDBToolsODBC
Database = /home/lss/mdb/mdb_test_01.mdb
Servername = localhost
UserName =
Password =
port = 5432
Servercharset = CP1251 # скопипастил откуда-то из гугла. не влияет на работу.
Charset = CP1251       #

# more /etc/unixODBC/odbcinst.ini
[MDBToolsODBC]
Description             = MDB Tools ODBC drivers
Driver          = /usr/lib/libmdbodbc.so.0
Setup           =
FileUsage               = 1
CPTimeout               =
CPReuse         =
Servercharset           = CP1251 # сюда тоже добавил. тоже без результата.
Charset         = CP1251
UsageCount              = 4

$ more test_query_ODBC.pl
#!/usr/bin/perl

use strict;

use DBI;

my $DSN = 'mdb_test_01';
my $dbh = DBI->connect("dbi:ODBC:$DSN", '','') or die "$DBI::errstr\n";

my $sql = qq{ SELECT gen,mname FROM contacts };

my $sth = $dbh->prepare( $sql );
$sth->execute();

my( $gen, $mname);
$sth->bind_columns( undef, \$gen, \$mname );

while( $sth->fetch() ) {
        print "$mname\n";
}

$sth->finish();
$dbh->disconnect();

Пробуем запустить:
$perl test_query_ODBC.pl|head

???????
????
????????
????????
?????
?????????
???????
???????
?????????

Скрипт запускался под линукс. настройка локали(и терминала) UTF-8. пробовал менять на CP-1251. Нет эффекта.
При любом раскладе вместо русских символов - вопросики.
Я так понимаю, проблема с настройкой самого unixODBC. Может кто подскажет как быть. Весь гугл облазил, не пойму, такое ощущение, что Аксесовские базы и альтернативные кодировки - вещи несовместимая..
Заранее спасибо! )

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру