1

我在网站上到处使用 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',
        ));
4

1 回答 1

0

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

当我删除此子表单并使用 $form = new Form_UserSettingsForm($user); 直接,它工作得很好。

所以当你在代码的任何地方使用 $dom->saveHTML() 函数时要小心!

于 2012-05-18T10:06:24.597 回答