所以我们面临着一个让我的耐心解决的可怕问题。
我创建了两个函数,一个用于编码从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;
(我放置了一个\,因此您可以读取代码),当我在我的开发服务器中重新获取它时,我会得到Éé
当我从客户端的服务器上重新获取它时�?é
。
我一直在潜伏堆栈几个小时找到我的问题的答案,但我没有成功,所以我求你帮忙。
答案 0 :(得分:1)
我建议使用base64_encode和base64_decode。这应该可以解决任何问题。
答案 1 :(得分:0)
之前我遇到过这个问题,但我使用的是ADODB数据库包装器。为此,我不得不使用它:
$db->EXECUTE("set names 'utf8'");
您不确定是否使用数据库包装类,但基本上您需要将模式名称设置为utf8。 HERE就是一个例子。
答案 2 :(得分:0)
我认为我们需要澄清一下。 “检索”是什么意思?我假设您的意思是“在浏览器中显示”,那么您首先通过查看您的http标头检查客户端网络服务器提供的字符编码吗?它可以输出为ISO-8859-1。
另外,为什么要运行实体解码和编码两次?