1

我正在尝试设置 Zend Form 为我工作。我使用相同的表单来插入和编辑特定的数据库对象。该对象有名称,我可以轻松地创建一个名为“Ülo”的新对象。它正确保存在数据库中,当我获取它以显示在报告中时,它会显示正确的“Ülo”。问题在于表格。当我打开编辑表单时,名称元素为空。所有其他元素都正确显示,如果我将它们更改为其中包含“ü”,它们也会显示为空。表单元素标签也是如此。当我将标签设置为包含“ü”时,它不再显示标签。

例如,如果我有,$name->setLabel('Nameü: ');那么它不会显示标签,但是当我将其更改回时,$name->setLabel('Name: ');它会显示正确。

当我拥有$bcrForm->name->setValue('Ülo');它时,同样的事情不会显示该值,但是当我将其更改为它时,$bcrForm->name->setValue('Alo');它会正确显示。

如何修复它以正确显示?这似乎是某种形式的渲染问题。

4

5 回答 5

1

这个帮助我解决了这个问题:

确保这些设置在 /etc/php5/apache2/php.ini 和 /etc/php5/cli/php.ini 中:

default_charset = utf-8
于 2013-04-17T08:23:10.493 回答
0

我会检查:

  • 查看字符集
  • 数据库字符集(后端)
  • Zend_Db_Adapter 字符集
  • 文件字符集

视图转义方法设置为期望 utf8 字符,并且可能会剥离其他任何内容(即单字节奇怪字符):)

于 2012-05-14T15:17:30.527 回答
0

确保您的脚本和视图文件都以 UTF-8 编码,并且您与数据库的连接也设置为 UTF-8。

如果您使用的是 mysql,您可以通过打开数据库连接并运行来强制它返回 UTF-8 数据:SET NAMES 'utf8'

或使用 mysqli 与:mysqli_set_charset('utf8');

于 2012-05-11T15:17:10.533 回答
0

你检查编码了吗?尝试将此添加到头部...

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
于 2012-05-11T11:14:11.600 回答
0

它应该像在元素标签装饰器上将转义标志设置为 false 一样简单。

$name->addDecorator('Label', аrray('escape'=>false));

或见setEscape()http://framework.zend.com/manual/1.12/en/zend.form.standardDecorators.html

于 2012-11-28T16:22:20.373 回答