URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 22949
[ Назад ]

Исходное сообщение
"Openldap2.1.8 и адресная книга на русском языке"

Отправлено Gaz , 13-Ноя-02 18:00 
Поднял Openldap2.1.8 на FreeBSD 4.7
В операционке вся локализация выполнена.
Без проблем вводится и читается кирилица.
Хочу создать адресную книгу для MS Outluka
Пишу ldif файл с русскими полями внутри а при
выподнении ldapadd
ldap_add: Invalid syntax (21)
        additional info: cn: value #0 invalid per syntax
Эсли русско-язичние названия заменить латинскими - всё работает
без проблем.
В доке по Openldap2 говорится что есть интернациональная поддержка.
Но не написано как пользоваться.
На этом форуме уже был вопрос по созданию адресной книги в ldap
на русском; но остался без ответа.

Спасибо за помощь.


Содержание

Сообщения в этом обсуждении
"RE: Openldap2.1.8 и адресная книга на русском языке"
Отправлено Ilya , 14-Ноя-02 02:02 
>В доке по Openldap2 говорится что есть интернациональная поддержка.
>Но не написано как пользоваться.
>На этом форуме уже был вопрос по созданию адресной книги в ldap
поддержка русского есть, но несколько неудобно для администрирования :(
1) берешь строку вида cn=Вася, dc=office, dc=ru
и преобразуешь ее всю в utf-8
2) полученный результат кодируешь в base64
3) полученный результат подставляешь в ldif-файл
dn:: OKXQsNC
o:: OJLQvdGD
4) ldapadd -f ldif-file

и все работает по-русски (по крайней мере TheBat и Mozilla)

Подробности можно посмотреть на www.openldap.org


"RE: Openldap2.1.8 и адресная книга на русском языке"
Отправлено bass , 14-Ноя-02 04:50 
для редактирования ldif можно использовать ldap-броузеры с поддержкой уникода. я использую gq

когда нужно быстро что-то сделать через ldapmodify, то используем скрипт (вот кусок перекодировки):

use Text::Iconv;                                                                                                    
use MIME::Base64;                                                                                                    
$converter = Text::Iconv->new('KOI8-R', 'UTF-8');                                                                    
$converted = $converter->convert($ARGV[0]);                                                                          
print encode_base64($converted, ''), "\n";