LINUX.ORG.RU
ФорумAdmin

Запись в ldap русской строки из PHP


0

0

Проблема состоит в следущем: В переменной ($fio) PHP лежит строка на русском языке (cp1251) echo $fio; работает нормально, но если попробовать записать эту строку в ldap, то он ругается: 21 ошибка. если же этуже строку добавлять через какой-нить ldap-client то все отлично работает... Кто сталкивался подскажите куда копать?

anonymous

Ответ на: комментарий от anonymous

Не знаю, как в php, но в ldapadd и ldapmodify замечательно работает

spirit ★★★★★
()

необходимо сперва перекодировать в utf8 и зажать потом base64. например, так:

encode_base64(`echo $fio | iconv -f koi8-r -t UTF-8`);

(это на перле)

gc
()
Ответ на: комментарий от DonkeyHot

> Это не нужно. man ldif. не нужно именно что? и на предмет чего man ldif? вообще-то я привел кусок скрипта, боевого скрипта, которым пользуюсь уже с полгода для заведения новых пользователей в базу. и, поверь, не просто так трамбовать в base64 начал...

gc
()
Ответ на: комментарий от gc

1. Не нужно в base64 кодировать. Собственно, если клиент умный, то он сам должен строки из текущей локали кодировать в utf8, а если тупой - то ему достаточно совать utf8.

2. Если уж кодировать - то про ':' не стоит забывать.

3. Я, в общем, тоже давно пользователей в ldap-е держу. И в b64 не пользую для текстовых строк :-).

DonkeyHot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.