1

所以我面临一个可怕的问题,我需要耐心解决。

我做了两个函数,一个对从所见即所得编辑器收集的数据进行编码,以将其发送到 mysql 数据库(我正在使用的表字符集是 UTF-8),另一个以相反的方式(数据库到所见即所得),你可以见下文。

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)时,解码无法正常工作......

例如,如果我发送一个&\Eacute;&\eacute;(我放置了一个 \ 以便您可以阅读代码)到数据库,Éé当我在我的开发服务器中检索它时,我会得到一个,当我�?é从客户端的服务器检索它时会得到一个。

我已经潜伏了好几个小时来为我的问题找到答案,但我没有成功,所以我请求你帮助。

4

3 回答 3

1

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

于 2012-10-19T15:09:39.980 回答
0

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

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

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

于 2012-10-19T15:09:50.837 回答
0

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

在旁注中,您为什么要运行两次实体解码和编码?

于 2012-10-19T15:14:53.780 回答