Php 转义utf8编码字符的Zend Framework

Php 转义utf8编码字符的Zend Framework,php,zend-framework,Php,Zend Framework,我目前正在使用其他语言获取提要数据。我执行以下操作并将其存储到mysql中 $content = htmlentities($item->title, ENT_COMPAT, "UTF-8"); 当我使用$this->escape输出文本时,它仍然会转义编码的实体 所以我得到:á而不是 有什么想法吗?不要做htmlspecialchars,htmlspecialchars编码许多不需要甚至不应该编码的东西: $content = htmlspecialchars($item-

我目前正在使用其他语言获取提要数据。我执行以下操作并将其存储到mysql中

$content = htmlentities($item->title, ENT_COMPAT, "UTF-8");
当我使用$this->escape输出文本时,它仍然会转义编码的实体

所以我得到:
á而不是


有什么想法吗?

不要做
htmlspecialchars
htmlspecialchars
编码许多不需要甚至不应该编码的东西:

$content = htmlspecialchars($item->title, ENT_COMPAT, 'UTF-8');
如果提要数据未以utf-8编码,则可能需要在
htmlspecialchars
之前对其进行转换:

$content = mb_convert_encoding($item->title, 'UTF-8', '<encoding of the other side>');
$content=mb\u convert\u编码($item->title,'UTF-8','');
注意,“另一方的编码”可能很重要


顺便说一下,如果你想把它输出为HTML而不进行任何过滤,请考虑把它存储为原生HTML。< /P>我不明白你的问题是什么?不要在存储数据时对其进行编码,在显示数据时对其进行编码。另外,

Zend_View::escape()
本机使用
htmlspecialchars
UTF-8
编码,除非被覆盖。谢谢!htmlspecialchars在不删除$this->escape()的情况下修复了该问题!