• <i id='Znjcz'><tr id='Znjcz'><dt id='Znjcz'><q id='Znjcz'><span id='Znjcz'><b id='Znjcz'><form id='Znjcz'><ins id='Znjcz'></ins><ul id='Znjcz'></ul><sub id='Znjcz'></sub></form><legend id='Znjcz'></legend><bdo id='Znjcz'><pre id='Znjcz'><center id='Znjcz'></center></pre></bdo></b><th id='Znjcz'></th></span></q></dt></tr></i><div id='Znjcz'><tfoot id='Znjcz'></tfoot><dl id='Znjcz'><fieldset id='Znjcz'></fieldset></dl></div>

      <legend id='Znjcz'><style id='Znjcz'><dir id='Znjcz'><q id='Znjcz'></q></dir></style></legend>

    1. <tfoot id='Znjcz'></tfoot>

      1. <small id='Znjcz'></small><noframes id='Znjcz'>

          <bdo id='Znjcz'></bdo><ul id='Znjcz'></ul>

        外来字符和 LDAP.LDAP 期望什么编码/字符集?

        时间:2024-08-23
        1. <tfoot id='VIIGQ'></tfoot>

          • <legend id='VIIGQ'><style id='VIIGQ'><dir id='VIIGQ'><q id='VIIGQ'></q></dir></style></legend>

            <small id='VIIGQ'></small><noframes id='VIIGQ'>

          • <i id='VIIGQ'><tr id='VIIGQ'><dt id='VIIGQ'><q id='VIIGQ'><span id='VIIGQ'><b id='VIIGQ'><form id='VIIGQ'><ins id='VIIGQ'></ins><ul id='VIIGQ'></ul><sub id='VIIGQ'></sub></form><legend id='VIIGQ'></legend><bdo id='VIIGQ'><pre id='VIIGQ'><center id='VIIGQ'></center></pre></bdo></b><th id='VIIGQ'></th></span></q></dt></tr></i><div id='VIIGQ'><tfoot id='VIIGQ'></tfoot><dl id='VIIGQ'><fieldset id='VIIGQ'></fieldset></dl></div>

                  <tbody id='VIIGQ'></tbody>

                • <bdo id='VIIGQ'></bdo><ul id='VIIGQ'></ul>

                • 本文介绍了外来字符和 LDAP.LDAP 期望什么编码/字符集?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  I am parsing XML, with simplexml_load_string(), and using the data within it to update Active Directory (AD) objects, via LDAP.

                  Example XML (simplified):

                  <?xml version="1.0" encoding="UTF-8"?>
                  <users>
                      <user>Bìlb Bággn</user>
                      <user>Gńdf Thê Grt</user>
                      <user>ām Wī</user>
                  </users>
                  

                  I firstly run an ldap_search() to find a single user and then proceed to change their attributes. Pumping the above values straight into AD, using LDAP, will result in some pretty mangled characters showing up.

                  For example: Blb Bggn

                  I've tried the following functions, to no avail:

                  utf8_encode($str);
                  utf8_decode($str);
                  iconv("UTF-8", "ISO-8859-1//TRANSLIT", $str);
                  iconv("UTF-8", "ASCII//TRANSLIT", $str);
                  iconv("UTF-8", "T.61", $str);
                  

                  Ideally, I don't want to do any of these string conversions. UTF-8 should be fine, right?!

                  I've also noticed the following: I have printed out the values to see how they come out. curl-ing the script in CLI will show the correct characters, but web browsers show the same as AD.

                  What's going on? Should I be looking at something else, eg. URL encoding? I'm hoping this is down to a simple mistake on my end.

                  EDIT: I entered in these characters using AD admin GUI to see how they would come out. I can read them via LDAP fine. Correct characters are displayed when in a browser. curl-ing via CLI will show question marks instead of foreign characters. Passing one of these returned values into mb_detect_encoding() will return UTF-8.

                  I decided to immediately modify the same object by not writing in a new string, but just reversing the existing value and saving the object. This works fine - I see the correct value (reversed) in AD.

                  • Developing on Mac OS X 10.7 Lion - PHP 5.4.3
                  • Running production on: Red Hat 6 - PHP 5.4.3
                  • AD server: Windows 2003

                  UPDATE: After a few months, I was unable to find the answer/solution to this problem. In the end, I went with replacing characters to their non-accented equivalent (NOT ideal, I know).

                  解决方案

                  Are you using LDAP v3?

                  ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
                  

                  LDAPv3 supports UTF-8 by default, which it expects requests and responses to be in by default. See here: http://technet.microsoft.com/en-us/library/cc961766.aspx

                  这篇关于外来字符和 LDAP.LDAP 期望什么编码/字符集?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:在使用 IE/Firefox 时使用 PHP、活动目录对 ldap 进行身份验证 下一篇:使用 PHP 和 LDAP 连接到 Microsoft Office 365

                  相关文章

                  <tfoot id='LrWgG'></tfoot>

                  <small id='LrWgG'></small><noframes id='LrWgG'>

                    <legend id='LrWgG'><style id='LrWgG'><dir id='LrWgG'><q id='LrWgG'></q></dir></style></legend>
                  1. <i id='LrWgG'><tr id='LrWgG'><dt id='LrWgG'><q id='LrWgG'><span id='LrWgG'><b id='LrWgG'><form id='LrWgG'><ins id='LrWgG'></ins><ul id='LrWgG'></ul><sub id='LrWgG'></sub></form><legend id='LrWgG'></legend><bdo id='LrWgG'><pre id='LrWgG'><center id='LrWgG'></center></pre></bdo></b><th id='LrWgG'></th></span></q></dt></tr></i><div id='LrWgG'><tfoot id='LrWgG'></tfoot><dl id='LrWgG'><fieldset id='LrWgG'></fieldset></dl></div>
                      <bdo id='LrWgG'></bdo><ul id='LrWgG'></ul>