Zend Form显示非英语字符上的奇怪字符

时间:2012-05-15 09:44:29

标签: php character-encoding zend-form

我在网站上的任何地方都使用UTF-8,数据也以UTF-8的形式返回,它可以在页面的任何地方使用,除了一种情况:(zend)表单值。

我检查了所有内容,字符串是utf-8,页面编码是utf-8,Api的结果是utf8。

(Margar\u00e9t\u00e1\u00f3\u0171\u00fa\u0151\u00fc\u00f6)

这就是我在div中以及标题中看到的内容:

Margarétáóűúőüö

这就是我在表格中得到的结果:

Margarétáóűúőüö

我尝试了许多事情,utf8_encodemb_convert_encoding,但没有发生任何事情。

我使用了帮手,$ name包含'Margarétáóűúőüö'的价值:

    $form = $this->_helper->form('user-settings');
    $form->addElement('text', 'name', array(
            'label'      => 'Name',
            'value'         => $name,
            'required'   => true,
            'autocapitalize' => 'off',
            'autocorrect' => 'off',
        ));

1 个答案:

答案 0 :(得分:0)

我刚才意识到,我们使用partialLoop + form helper来获取子表单。不幸的是,我们在其中使用了一个DOM,saveHTML()中的DOM函数有点儿错误,不能很好地处理UTF-8字符。

当我删除这个子表单并使用$ form = new Form_UserSettingsForm($ user)时;直接,它运作良好。

在代码中的任何位置使用$ dom-> saveHTML()函数时要小心!