PHP 5.2.17; html_entity_decode - 字符解码问题

时间:2012-10-19 15:04:28

标签: php html5 version special-characters html-entities

所以我们面临着一个让我的耐心解决的可怕问题。

我创建了两个函数,一个用于编码从wysiwyg编辑器收集的数据以将其发送到mysql数据库(表格charset即时工作是UTF-8)和其他以反向方式(数据库到wysiwyg),如下所示。

function displayTextWithTags($textToBeDisplayed) {
    return html_entity_decode(html_entity_decode($textToBeDisplayed));
}

function sendTextToDatabase($text){
    return trim(htmlentities(htmlentities($text, ENT_QUOTES)));
}

它在我的运行php 5.4.4的开发服务器上运行良好,但是当我将我的应用程序上传到我客户端的服务器(运行php 5.2.7)时,解码无法正常工作...... < / p>

例如,如果我向数据库发送&\Eacute;&\eacute;(我放置了一个\,因此您可以读取代码),当我在我的开发服务器中重新获取它时,我会得到Éé当我从客户端的服务器上重新获取它时�?é

我一直在潜伏堆栈几个小时找到我的问题的答案,但我没有成功,所以我求你帮忙。

3 个答案:

答案 0 :(得分:1)

我建议使用base64_encode和base64_decode。这应该可以解决任何问题。

答案 1 :(得分:0)

之前我遇到过这个问题,但我使用的是ADODB数据库包装器。为此,我不得不使用它:

 $db->EXECUTE("set names 'utf8'");

您不确定是否使用数据库包装类,但基本上您需要将模式名称设置为utf8。 HERE就是一个例子。

答案 2 :(得分:0)

我认为我们需要澄清一下。 “检索”是什么意思?我假设您的意思是“在浏览器中显示”,那么您首先通过查看您的http标头检查客户端网络服务器提供的字符编码吗?它可以输出为ISO-8859-1。

另外,为什么要运行实体解码和编码两次?