【问题标题】:Zend Framework - utf8 on localhost okay - utf8 on webserver failsZend Framework - localhost 上的 utf8 好的 - 网络服务器上的 utf8 失败
【发布时间】:2012-09-01 07:09:17
【问题描述】:

在寻找解决方案数小时后,我放弃了。这是我的问题。 我在 localhost 的数据库是 utf8_general_ci,在我的 application.ini 中我写了

resources.db.params.charset = utf8

一切都很好并且工作正常。

但在网络服务器上,字符显示为 ü 或 ö。 我评论了 resources.db.params = utf8 进出。如果它出来了,那么到处的字符都很好,但不是任何形式(标签或值)。如果它在每个字符上都会出现这样的情况。同样的故事/没有效果与

$form->setAttrib('accept-charset', 'UTF-8'); 

我也试过了

resources.db.params.driver_options = "SET NAMES utf8". 

没有成功。

PHP 版本 localhost:5.3.8 - MySql 5.0.8
PHP版本网络服务器:5.2.6 - MySql 5.0.51

【问题讨论】:

  • 您确定您服务器上的数据库使用 utf8_general_ci 排序规则吗?
  • 是的,整个数据库,每个表,每个表列
  • 另外,您是否发送Content-Type: text/html; charset=utf-8-header 和/或在您的<head>-tag 中包含<meta charset="utf-8">-tag?
  • 酷。我会将我的 cmets 转换为正确的答案。
  • 而且 - 当然 - 在 bootstrap.php 中: $view->setEncoding('UTF-8') 一切都还没有效果!它不起作用:(((

标签: php mysql forms zend-framework utf-8


【解决方案1】:

我不确定这是否是解决方案,但为了在 MySQL 中使用 UTF-8,我将 db 参数设置为:

resources.db.params.charset = utf8

你试过了吗?

[编辑]

您可能还想确保视图(以及表单)也使用正确的编码:

resources.view.encoding = "UTF-8"

或者,如果您在引导程序中手动实例化视图:

$view->setEncoding("UTF-8");

这应该使表单接受相同的编码,因为它使用视图的默认值。

【讨论】:

  • 我做到了。当我注释掉这一行时,除了表单元素之外的一切都很好。
  • 所以是表单输入没有使用 UTF-8,而不是数据库,对吗?
  • 当我评论 resources.db.params.charset = utf8 时 - 是的。 (有无此行 $form->setAttrib('accept-charset', 'UTF-8'); )
  • 还有错位的字符,当通过您的应用程序或 phpMyAdmin 回显时,它们是否会出现错位?
  • 哇,另一个效果。通过 locahost 上的回显,有这些黑色的?-标志,在网络服务器上可以吗?!在 phpmyadmin 中,所有字符都很好。 (感谢您尝试帮助我。)
【解决方案2】:

如果您的数据库正确配置为使用 utf8_general_ci-collat​​ion,那么问题不在于数据库,而在于告诉浏览器如何正确解码来自服务器的 HTML 响应。

有两种方法可以告诉浏览器如何解码响应:

  1. Content-Type-header 中包含字符编码。然后它看起来像这样: Content-Type: text/html; charset=utf-8

    或类似的其他内容类型。

    Content-Type: application/json; charset=utf-8

  2. <meta charset="utf-8"> 作为<head> 标记中的第一个标记。将此标签作为第一个标签之一很重要。至少在任何包含需要显示的文本的标签之前,例如<title>

【讨论】:

  • 我是这样做的:w3.org/1999/xhtml" xml:lang="de-de" lang="de-de" > 你认为是浏览器问题:但是为什么有些字符显示正确而所有表单元素显示错误,如果我注释掉这行:资源。 db.params.charset = utf8?真的不明白
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-01
  • 2012-08-03
  • 1970-01-01
  • 2019-01-25
  • 1970-01-01
  • 2011-08-07
相关资源
最近更新 更多