【问题标题】:Breadcrumbs with Zend_Navigation and character encoding带有 Zend_Navigation 和字符编码的面包屑
【发布时间】:2011-05-07 10:17:30
【问题描述】:

我正在使用 Zend Framework 开发一个包含巴西字符的网站,并且我的导航菜单项位于数据库中。

我已经在 HTML 元标记、文件本身和我的数据库中仔细检查了我的字符编码。一切都设置为 UTF-8,我的整个网站都呈现正常(包括我的菜单项有重音字符。

虽然我使用 Zend_Navigation 来渲染面包屑,但效果并不好。见下图:

Missão 是我数据库中的内容。不幸的是,它并没有变成ã。我不知道为什么。


我还在我的管理模块中使用 Zend_Navigation 来完美呈现面包屑和菜单。不同之处在于我在管理模块中使用 XML,而在默认模块中使用数组(这是有问题的模块)。

我尝试使用 Zend_Config_Writer_Xml 从 Config 对象写入 XML。然后,我检查了文件,它写得正确:<label>Informações</label>。虽然,为了正确呈现 XML,只写 <label>Informações</label> 就足够了(这就是我在管理模块导航 XML 中的内容)。

好吧,如果我直接在数组中写Informações 然后让它写XML 怎么办?我试过这个,我得到了<label>Informações</label>,它也不起作用。

我想提出一个解决方案,因为我没时间了

【问题讨论】:

    标签: zend-framework character-encoding


    【解决方案1】:

    我会说面包屑助手正在自动转义输出。 There is a hardcoded call to escape() in renderStraight()。您可以通过查看源代码来验证& 是否为&

    如果您已经在使用 UTF-8,则不应将实体用于特殊字符。只需使用他们的常规表示。绕过 XML 将其转换为实体 make sure the XML file is set to write UTF-8

    如果这一切都没有帮助,check that the webserver is serving the Response in UTF-8。元标记只是后备,如果 Web 服务器发送编码则不会被考虑。虽然这不太可能是其他实体显示正常的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多