2011-05-13 198 views
0

我使用Zend_Form創建了一個表單,並且他所有包含變音符號的單詞都未呈現。編碼設置爲UTF-8,數據庫的排序規則設置爲utf-8_unicode。我還應該做什麼/檢查?Zend_Form中的非英文字符

頁眉:

<meta content="text/html; charset=utf-8" http-equiv="content-type">

的Zend_Form的部分:

 $user = Doctrine::getTable("aclUser")->find(1, Doctrine_Core::HYDRATE_ARRAY); 
     $this->addElement('text','providerName', 
      array(
       'label'  => 'Provider_name', 
       'required' => false, 
       'readonly' => true, 
       'value'  => $user['name'], 
       'filters' => array('StringTrim'), 
       'decorators'=> array(new Application_Form_Decorators_Custom()) 
      ) 
     ); 
+1

你能發佈一些示例代碼? – 2011-05-13 12:19:32

+0

已添加。我不知道它是否有幫助... – sica07 2011-05-13 12:28:15

+1

數據庫連接字符集是否也是'utf-8'? – Phil 2011-05-13 12:32:07

回答

1

已解決。我加入my.cnf中此設置,現在一切都OK呈現:

[client] 
default-character-set=utf8 

[mysqld] 
init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
default-character-set=utf8 
character-set-server = utf8 
collation-server = utf8_unicode_ci 

[mysql] 
default-character-set=utf8 
+0

僅供參考通過SET NAME設置字符集也設置排序 – Phil 2011-05-13 13:15:10

+0

我不知道這一點。感謝Phil! – sica07 2011-05-17 16:16:41

1

可能是一個問題提交表單本身

是否設置窗體的accept-charset爲UTF-8的幫助?

<form accept-charset="UTF-8"> 
    [form elements] 
</form> 
+0

不錯的主意,但我相信問題是顯示初始表單值,不接受新的值 – Phil 2011-05-13 13:16:54