perl, GetField, русские буквы

Обсуждение технических вопросов по продуктам Novell

perl, GetField, русские буквы

Сообщение Eugine_A » 04 июл 2003, 06:17

Добрый день, уважаемые

При работе с NDS столкнулся с интересной проблемой (по крайней мере для меня) - не могу прочитать значение аттрибутов, в которых записаны значения русскими буквами.

Это проявляется как в NSS, так и в Perl-е.
$Value = $Entry->GetFieldValue("Surname");
print $Value;


Например, на слово "Сидоров" выдает нечто ввиде "zzzzzzz" - где "z" - имеет код 233 по ASCII.
значения же латинскими буквами читаются замечательно.

dsbrowse значение в явном виде не показывает, но если смотреть attribute data in hex, то выдает значения, отличные от 233 в шестнадцатиричном виде.

Я, конечно, понимаю что проблема отображения кирилицы в консоли может быть, но дело в том, что при разбивке строки на символы и выводе их ASCII кодов у меня всё-равно остается код 233.

Подскажите как решить эту проблему, если знаете, или же укажите в каком месте копать. А то что-то пока не могу найти решения ни тут, ни на родных novell-овских форумах, ни на поисковиках.
Аватара пользователя
Eugine_A
 
Сообщения: 3
Зарегистрирован: 04 июл 2003, 05:35

Сообщение Владимир » 04 июл 2003, 09:41

В перле делал так.
$Value =~ tr/[\x80-\xAF][\xE0-\xEF]/[\xC0-\xEF][\xF0-\xFF]/;
Но это не для вывода на консоль, а для WWW.
Для консоли надо что-то подобное:
codepage cp866
keyb russia
Владимир
 
Сообщения: 179
Зарегистрирован: 22 июн 2002, 12:18
Откуда: г.Мирный

Сообщение Eugine_A » 07 июл 2003, 05:03

Ошибся с кодом (писал по памяти) - 253, а буквы как 2 в верхнем индексе.

проблема как раз в том, чтобы получить эти значения из NDS, как я понимаю, эти значения GetFieldValue выдает уже в неверном виде.

NDS сама в английской кодировке, разные утилиты под Win показывают значения полей корректно. Поэтому возникает мысль о том, что эта фукнция в perl for Novell выдает значене не в чистом виде, а уже обработанное согласно его представлениям о локали.

по крайней мере, вышепредставленная конструкция $Value =~ ... не помогла решить эту проблему.

Вариант с установкой Apache под Novell пока не пробывал. Поэтому не могу сказать насколько это точно относится к работе в такой связке.
С уважением,
Евгений
Аватара пользователя
Eugine_A
 
Сообщения: 3
Зарегистрирован: 04 июл 2003, 05:35

Сообщение Владимир » 07 июл 2003, 05:10

Необходимо установить русский lconfig
Владимир
 
Сообщения: 179
Зарегистрирован: 22 июн 2002, 12:18
Откуда: г.Мирный

Сообщение Eugine_A » 07 июл 2003, 08:11

Спасибо, теперь всё работает - данные получает корректно и выводит на экран ... по крайней мере, это работает с Novell Server Scripts, perl почему-то подвесил сессию (надо будет смотреть что не так)

А поставил пропатченный lconfig.sys ... надо будет попробывать непатченный lconfig.sys для России
С уважением,
Евгений
Аватара пользователя
Eugine_A
 
Сообщения: 3
Зарегистрирован: 04 июл 2003, 05:35


Вернуться в Novell

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4