作者 主題: squirrelmail1.4.4抓ldap address book中文亂碼的問題  (閱讀 13309 次)

0 會員 與 2 訪客 正在閱讀本文。

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
呵~不知道要貼那邊~

上星期我抓最新的squirrelmail下來試用~中文問題大部份都沒問題~

中文附件~中文內容~自己建立的中文通訊錄...等等~都還ok

今天發現我要去抓ldap address book時~在中文全名的部份都是亂碼~

我不確定是不是我設定檔的charset設定有問題(看起來不太像~因為其他都正常)

抓了另一台ldap server的資料結果也都一樣~也確定ldap吃了UTF-8的資料~

後來據damon兄的建議說可能是程式轉來轉去出問題了~於是就找程式下手~

改了abook_ldap_server.php裡的第285行 把原先的
代碼: [選擇]
$fullname = $this->charset_decode($row['cn'][0]);
改成
代碼: [選擇]
$fullname = iconv("utf-8","big5",$row['cn'][0]);
就可以正常看到中文全名了~

如果有人也遇到類似情形~可以參考看看~或是誰知道我設定錯誤的話~也跟我講一下~謝啦~

aaron

  • 活潑的大學生
  • ***
  • 文章數: 212
  • 性別: 男
    • 檢視個人資料
squirrelmail1.4.4抓ldap address book中文亂碼的問題
« 回覆 #1 於: 2005-09-08 17:49 »
想請問是怎麼去抓LDAP上的資料, 要在ldap server上建立讓squirrelmail使用的帳號嗎? :roll:
VMware ESXi & VMware Server & XenServer & VirtualBox

aaron

  • 活潑的大學生
  • ***
  • 文章數: 212
  • 性別: 男
    • 檢視個人資料
squirrelmail1.4.4抓ldap address book中文亂碼的問題
« 回覆 #2 於: 2005-09-13 14:00 »
經多方收集資料 , 使用下列格式就可向Active Directory要資料

Host:test.com(IP or hostname)
Base DN:ou=XXXXX,dc=test,dc=com (範例是使用"o="但就是沒效用)
charset:BIG5 (這樣才不會亂碼)
port:3268 (Windows Active DIrectory的port)
Bind DN:user1@test.com (AD中的使用者)
Bind DN PW:XXXXXX (user1的密碼)
儲存後離開
接下來在編寫郵件時,點選"通訊錄" -> "列出全部",就可以將AD Server上的
資料抓下來了,真是非常方便。

我在設定時一直是使用 ou=XXXXX,o=test,o=com 但一直失敗,還想到要用
"dc="才能連接,不知有沒有人知道原因。
p.s. squirrelmail 1.4.5出來了 :D  :D  :D
VMware ESXi & VMware Server & XenServer & VirtualBox

hoffmannlin

  • 懷疑的國中生
  • **
  • 文章數: 83
    • 檢視個人資料
squirrelmail1.4.4抓ldap address book中文亂碼的問題
« 回覆 #3 於: 2006-08-29 10:22 »
那請問wilson
在資訊是亂碼該如何解決?

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
引述: "wilson"
呵~不知道要貼那邊~

上星期我抓最新的squirrelmail下來試用~中文問題大部份都沒問題~

中文附件~中文內容~自己建立的中文通訊錄...等等~都還ok

今天發現我要去抓ldap address book時~在中文全名的部份都是亂碼~

我不確定是不是我設定檔的charset設定有問題(看起來不太像~因為其他都正常)

抓了另一台ldap server的資料結果也都一樣~也確定ldap吃了UTF-8的資料~

後來據damon兄的建議說可能是程式轉來轉去出問題了~於是就找程式下手~

改了abook_ldap_server.php裡的第285行 把原先的
代碼: [選擇]
$fullname = $this->charset_decode($row['cn'][0]);
改成
代碼: [選擇]
$fullname = iconv("utf-8","big5",$row['cn'][0]);
就可以正常看到中文全名了~

如果有人也遇到類似情形~可以參考看看~或是誰知道我設定錯誤的話~也跟我講一下~謝啦~


會不會 squirrelmail 跑的是 Big5 ?
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/