Forum Webscript.Ru

Программирование => Perl => Тема начата: Alanius от 23 Ноября 2004, 07:51:59

Название: Perl и MSSQL - проблема с русскими буковками
Отправлено: Alanius от 23 Ноября 2004, 07:51:59
Здравствуйте!
Столкнулся с проблемой, которую никак не могу обойти.
Требуется получить данные, которые хранятся в MS SQL под виндой в perl-скрипт на linux rh9. Для этого используется DBD::ODBC в связке с FreeTDS.
Сам коннект и выполненение запросов отрабатываются замечательно, но возникает проблема при получении данных, содержащих русские символы: все они отображаются вопросиками.
Знаю, что проблема в кодировке, но решить ее не могу никак:
ни какое прописывание char set в конфиге FreeTDS, ни измывательства над локалью не помогают.
На onennet\'е встретил статью про такие же мытарства с PHP, но описанное там решение мне тоже не подходит в силу специфики самого PHP...

Помогите, кто знает как с этим бороться.

Заранее спасибо,
Алексей.
Название: Perl и MSSQL - проблема с русскими буковками
Отправлено: NeoNox от 23 Ноября 2004, 12:16:49
1) в какой кодировке данные в базе?
2) покажи /etc/freetds/locales.conf
3) что ставил в локали? уверен что такая локаль присутствует на красной шапке?
Название: Perl и MSSQL - проблема с русскими буковками
Отправлено: Alanius от 23 Ноября 2004, 21:45:08
1) В MSSQL все данные в cp1251
2) Сейчас стоит
[default]
        date format = %b %d %Y %I:%M%p
        language = us_english
        char set = cp1251
[en_US]
        date format = %b %d %Y %I:%M%p
        language = us_english
        char set = iso_1

[es_ES]
        date format = %b %d %Y %I:%M%p
        language = spanish
        char set = iso_1
[ru_RU]
        date format = %b %d %Y %I:%M%p
        language = russian
        char set = cp1251

Ставил char set: utf-8, koi8-r, cp1251

3) В локали ставил:
LANG=ru_RU.KOI8-R, ru_RU.CP1251, ru_RU.UTF-8, ru_RU.ISO-8859-(1-16).

Ничего не помогло.
Название: Perl и MSSQL - проблема с русскими буковками
Отправлено: BonJorno от 25 Ноября 2004, 07:05:40
Ты случайно не из полей nchar,nvarchar,ntext считываешь?
Название: Perl и MSSQL - проблема с русскими буковками
Отправлено: Alanius от 25 Ноября 2004, 22:24:04
из полей varchar
Название: Perl и MSSQL - проблема с русскими буковками
Отправлено: BonJorno от 26 Ноября 2004, 06:36:53
Тогда может попробовать перекодировать на клиенте из 1251 в KOI8 и другие
Название: Perl и MSSQL - проблема с русскими буковками
Отправлено: Wyclef от 26 Ноября 2004, 15:07:35
Насколько я помню такая проблема у меня была с FreeTDS v0.60 (у них на сайте вроде даже написано было). Обновил тогда до v0.61 - проблема исчезла... сделал и забыл.

Работает связка FreeBSD + DBD::Sybase + FreeTDS v0.61.

PS: Да, у меня еще выход перекодируется из win в koi.