2016-05-24 3 views
1

Я использую команду ldapsearch для запроса сервера OpenLDAP и, несмотря на то, что работает отлично для большинства применений, не очень умен в отношении специальных символов, найденных на таких языках, как испанский или французский.Использование ldapsearch с акцентированными символами

Я имею в виду, если я выполнить запрос:

ldapsearch -h myhost "givenName=Ramón"

Он будет выводить людей, имя которых является Ramón, но это не будет Ouput тех, чье имя вводится в качестве Ramon (который довольно часто встречается в чтобы избежать проблем со специальными символами). Я могу быть умным и просто выполнить запрос, как:

ldapsearch -h myhost "givenName=Ram*n"

И это прекрасно работает, выводя все возможные варианты, но мне интересно, если есть какой-то способ сказать ldapsearch, чтобы просто включить акцентированные версии персонажей в поиск, поэтому поиск Ramon включает в себя как Ramon, так и Ramón. Большинство поисковых систем уже делают это сейчас, поэтому, возможно, есть способ сделать это с помощью LDAP.

Заранее спасибо

ответ

0

Вам нужно будет, чтобы избежать строку в соответствии с RFC 4515 String Representation of Search Filters

Как правило, вам нужно бежать пункты, перечисленные в RFC 4515 String Representation of Search Filters, и я хотел бы предложить, также любой не-UTF8 характер.

Я также нашел methods that may be helpful, чтобы начать работу.

И наконец, бросить курить. Начните заполнять поиск Описание или какой-либо другой атрибут неименования. (любой атрибут, который не является частью DN). Ваши DN никогда не меняются. Ни один пользователь никогда не должен видеть DN, которое должно быть только путём к записи. У вас будут проблемы со многими инструментами «вне стеллажа», если вы продолжите эту практику.

Что касается возврата «a» вместо «умляут» (или что-то вроде этого). Хорошей новостью является то, что LDAP является легким и не имеет всех тех фантастических функций, которые выполняют всю работу для программистов. Плохая новость такая же.

LDAP не предоставляет таких возможностей для преобразования уставов, как вы пожелаете.

+0

Моя проблема не решена путем экранирования, на самом деле я уже без проблем выполняю поиск с акцентированными символами. То, что я хотел бы достичь, состоит в том, что один поиск, скажем, для слова, содержащего букву «а», возвращал в качестве результатов все видимость буквы а, но также и тех, где а акцентирован/уменен/что угодно. В настоящее время это не происходит с ldapsearch, так как каждая другая версия «a» имеет другой код UTF-8, и поэтому ldapsearch рассматривает их как разные символы, но обработка всех акцентированных версий символа одинакова - это стандартное поведение в большинстве поисковые системы. – jesjimher