Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Active Directory + Net::LDAP и русские буквы


Автор: kusok 30.8.2010, 10:22
Проблема в следующем. Мне нужно получить email'ы определённого пользователя из AD. Если CN пишется латиницей, то всё получается, если CN пишется русскими символами, то получаю ошибку:

Код

Can't call method "get_value" on an undefined value at C:\INSTALL\works\scripts\ldap.pl line 17, <DATA> line 522.


Сама функция:

Код

    my $ad = Net::LDAP->new('ldap://ad.domain.com') || die "$!\n";
    $ad->bind('[email protected]', password => 'pasword', version => 3, debug => 1) || die "$!\n";
    
    my $name = "Пупкин Василий";
    my $results = $ad->search(base => 'CN=Users,DC=ad,DC=domain,DC=com',
                            filter => "cn=$name",
                            attrs => 'mail'
                            );

    my $entry = $results->entry;
    print $entry->get_value('mail');


Автор: kosyakLA 3.6.2011, 08:08
Кстаит у меня та же проблема...есть решение?

Автор: arto 3.6.2011, 08:40
строка в utf?

Автор: kosyakLA 6.6.2011, 09:47
Нет. в Win1521

Автор: arto 6.6.2011, 10:08
AD поддерживает cp1251?

Автор: kosyakLA 14.6.2011, 06:11
перекодировал текст из UTF8 -> Win1251. Помогло. 

Encode::from_to($REQ, 'utf8', 'windows-1251');

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)