The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Преобразования текста из UTF-8"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Преобразования текста из UTF-8"  
Сообщение от Mamoru email(ok) on 30-Апр-08, 10:42 
Есть FreeBSD 6.0, openldap client 2.3
Дёргаю из Виндового AD данные при помощи ldapsearch
Русский хранится в AD в UTF-8 я пологаю. И ldapsearch выдаёт "0KHQuNGB0YLQtdC80L3Ri9C5INCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA" вместо "Системный администратор"
Как можно победить? Или потом конвертировать?
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Преобразования текста из UTF-8"  
Сообщение от geekkoo email(??) on 30-Апр-08, 11:41 
>Есть FreeBSD 6.0, openldap client 2.3
>Дёргаю из Виндового AD данные при помощи ldapsearch
>Русский хранится в AD в UTF-8 я пологаю. И ldapsearch выдаёт "0KHQuNGB0YLQtdC80L3Ri9C5INCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA"
>вместо "Системный администратор"
>Как можно победить? Или потом конвертировать?

Как бы по стандарту полагается хранить строки (типа DirectoryString) в виде UTF8. А там - либо локаль ставить соответствующую, либо iconv -f UTF8

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Преобразования текста из UTF-8"  
Сообщение от Mamoru email(ok) on 05-Май-08, 17:19 
>>Есть FreeBSD 6.0, openldap client 2.3
>>Дёргаю из Виндового AD данные при помощи ldapsearch
>>Русский хранится в AD в UTF-8 я пологаю. И ldapsearch выдаёт "0KHQuNGB0YLQtdC80L3Ri9C5INCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA"
>>вместо "Системный администратор"
>>Как можно победить? Или потом конвертировать?
>
>Как бы по стандарту полагается хранить строки (типа DirectoryString) в виде UTF8.
>А там - либо локаль ставить соответствующую, либо iconv -f UTF8
>

не всё так просто оказалось.
Искомая строка 0KHQuNG... Приводится "Штирлицем" к рускому виду двумя перекодированиями.
1ое - Base64->Win
2ое То,что получилось, UTF-8->WIN
Так что ответ Ldapsearc'а похоже не в UTF.

Кто-нибудь ещё сталкивался с чем-нибудь похожим?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Преобразования текста из UTF-8"  
Сообщение от Mamoru email(ok) on 05-Май-08, 17:29 
>[оверквотинг удален]
>>А там - либо локаль ставить соответствующую, либо iconv -f UTF8
>>
>
>не всё так просто оказалось.
>Искомая строка 0KHQuNG... Приводится "Штирлицем" к рускому виду двумя перекодированиями.
>1ое - Base64->Win
>2ое То,что получилось, UTF-8->WIN
>Так что ответ Ldapsearc'а похоже не в UTF.
>
>Кто-нибудь ещё сталкивался с чем-нибудь похожим?

Победил!
Вот таким конвеером: "|base64 -d |iconv -f UTF-8 -t KOI8-R"

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Преобразования текста из UTF-8"  
Сообщение от panin email on 30-Июн-08, 10:51 
а как быть с переносом строки?
ldapsearch -LLL -x -h 111.111.111.111 -D adreaduser@domain.com -w 123456 -b DC=domain,DC=com sAMAccountName=panin SN
dn:: Q0490J/QsNC90LjQvSDQmtC+0L3RgdGC0LDQvdGC0LjQvSxPVT1Vc2VycyxEQz1kb21haW4sREM9
Y29tCg==
sn:: 0J/QsNC90LjQvQ==

хочется получить по одной строке: атрибут:значение
перепробовал различные grepы sedы, может мозгов не хватает.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Преобразования текста из UTF-8"  
Сообщение от Mamoru email(ok) on 30-Июн-08, 15:52 
>а как быть с переносом строки?
>ldapsearch -LLL -x -h 111.111.111.111 -D adreaduser@domain.com -w 123456 -b DC=domain,DC=com sAMAccountName=panin
>SN
>dn:: Q0490J/QsNC90LjQvSDQmtC+0L3RgdGC0LDQvdGC0LjQvSxPVT1Vc2VycyxEQz1kb21haW4sREM9
>Y29tCg==
>sn:: 0J/QsNC90LjQvQ==
>
>хочется получить по одной строке: атрибут:значение
>перепробовал различные grepы sedы, может мозгов не хватает.

param=$(ldapsearch -h 192.168.0.1  -LLL -b "cn=users,dc=domain,dc=ru" \
-D "cn=administrator,cn=users,dc=domain,dc=ru" -x \
-wpass "(sAMAccountName=user)" \
|grep "sn::" |awk '{print $2}'|base64 -d |iconv -f UTF-8 -t KOI8-R )
echo "sn:"$param
Так подойдёт? Вместо "sn::" вписать нужное dn:: или чего ещё. Только правда, за один запрос один параметр выгрепливается.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Преобразования текста из UTF-8"  
Сообщение от panin email on 30-Июн-08, 16:21 
>[оверквотинг удален]
>>перепробовал различные grepы sedы, может мозгов не хватает.
>
>param=$(ldapsearch -h 192.168.0.1  -LLL -b "cn=users,dc=domain,dc=ru" \
>-D "cn=administrator,cn=users,dc=domain,dc=ru" -x \
>-wpass "(sAMAccountName=user)" \
>|grep "sn::" |awk '{print $2}'|base64 -d |iconv -f UTF-8 -t KOI8-R )
>
>echo "sn:"$param
>Так подойдёт? Вместо "sn::" вписать нужное dn:: или чего ещё. Только правда,
>за один запрос один параметр выгрепливается.

вот именно, не "наш" метод за один запрос один параметр.
Вышел из положения таким образом:
т.к. все это мне нужно одноразово, для переноса из домена 2003 в openldap,
на сервере виндовом: ldifde.exe -u -r "(objectclass=user)" -f c:\users.ldif
потом перекодировка полученного файла в нужную кодировку (в моем случае cat users.ldif | iconv -f unicode -t utf-8 -o new_users.ldif).
получаем дамп АД, где все, что было по-русски - читабильно.
и затем из этого файла все вытаскивается довольно просто, и помещается в openldap (соответственно с кодировкой всего русского в base64).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру