Codeigniter通過Ucenter整合了Discuz,但是用戶登錄的時候出現一些小問題。英文用戶名登錄沒問題,但是中文用戶名就無法登錄。判斷應該就是編碼不一致的問題。
目前的狀態是:
Codeigniter是UFT-8編碼
Ucenter雖然下載的是UFT-8的,但是文件都是GB2312的
Discuz是gbk的
通過DZ登錄,反向CI也能登錄正常。
之前的寫法是:
$username = $this->input->post('username');
$this -> load -> library('Ucenter');
list($uid, $username, $password, $email) = $this->ucenter->login($username, $password);
增加一個轉換即可:
$username = $this->input->post('username');
$username = iconv('UTF-8', 'GB2312', $username);
$this -> load -> library('Ucenter');
list($uid, $username, $password, $email) = $this->ucenter->login($username, $password);
這樣就行了,其實很簡單哈。