php – 外来字符和LDAP. LDAP期望的编码/字符集是什么?
|
我正在使用simplexml_load_string()解析 XML,并使用其中的数据通过LDAP更新Active Directory(AD)对象. 示例XML(简化): <?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>
我首先运行ldap_search()来查找单个用户,然后继续更改其属性.使用LDAP将上述值直接泵入AD,将导致出现一些非常严重的字符. 例如:B¨lbBggn 我尝试了以下功能,但无济于事: utf8_encode($str);
utf8_decode($str);
iconv("UTF-8","ISO-8859-1//TRANSLIT",$str);
iconv("UTF-8","ASCII//TRANSLIT","T.61",$str);
理想情况下,我不想进行任何这些字符串转换. UTF-8应该没问题吧?! 我也注意到以下几点: 这是怎么回事?我应该看看别的东西,例如.网址编码? 编辑: 我决定立即通过不写新字符串来修改同一个对象,而只是反转现有值并保存对象.这很好 – 我在AD中看到了正确的值(反转). >在Mac OS X 10.7 Lion上开发 – PHP 5.4.3 更新: ldap_set_option($ldap,LDAP_OPT_PROTOCOL_VERSION,3); 默认情况下,LDAPv3支持UTF-8,它希望默认情况下请求和响应.见:http://technet.microsoft.com/en-us/library/cc961766.aspx (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
