我正在开发一个 Web 应用程序,它是 PHP、HTML、Javascript、AJAX、JQuery 中的代码。
它链接到 MySQL 数据库。
这是问题所在:
数据库中的大部分文本都是法语,一些特殊字符,如“é”、“ù”、“à”在我的页面上显示为 �。
注意要提供更多信息,如果我在我的应用程序中的表单上输入“é”,它会在我的数据库“Ô中写入,如果我在我的数据库中插入一个“é”,它会在我的应用程序中显示为�。
更多信息:起初“é”显示正确。但是在我有一个从数据库刷新它的 AJAX 函数之后,它变成了一个 ...</p>
AJAX 代码:
function getXMLHttpRequest()
{
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject)
{
if (window.ActiveXObject)
{
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else
{
xhr = new XMLHttpRequest();
}
}
else
{
alert("Votre navigateur ne supporte pas le format des données en temps réel...");
return null;
}
return xhr;
}
function request()
{
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && (xhr.status == 200 || shr.status == 0))
{
readData(xhr.responseXML);
}
};
xhr.open("POST", "handlingData.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(null);
}
function readData(Data)
{
var XMLtr = Data.getElementsByTagName('tr');
for(var i = 0; i < XMLtr.length; i++)
{
var HTMLtr = document.getElementById(XMLtr[i].getAttribute('id'));
if(HTMLtr != null)
{
var XMLtd = XMLtr[i].getElementsByTagName('td');
for(var e = 0; e < XMLtd.length; e++)
{
var HTMLtd = HTMLtr.cells[e];
var HTMLtdReplace = document.createElement('td');
HTMLtdReplace.setAttribute('id', XMLtd[e].getAttribute('id'));
var InnerHTML = document.createTextNode(XMLtd[e].getAttribute("value"));
HTMLtdReplace.appendChild(InnerHTML);
HTMLtr.replaceChild(HTMLtdReplace, HTMLtd);
}
}
}
}
其余的代码只是一个简单的 PHP 的 HTML 表:
<body onload="var int = self.setInterval(function(){request(readData);}, 1000);">
<div id="divWrapper">
<div id="divBgd">
<?php
if($_SESSION['User'] == null || !isset($_SESSION['User']))
{
header("Location: ../Index.php");
}
include("Header2.php");
include("Navigation.php");
include("divData.php");
echo "<div style='clear: both;'></br></div>";
echo "<div style='clear: both;'></br></div>";
?>
</div>
<div style='clear: both;'></br></div>
</div>
<div style='clear: both;'></br></div>
</body>
这是 divData.php:
<div id="divData">
<table id="tblData" name="tblData">
<tr>
<th>Description</th>
<th>Données</th>
<th>Unitées</th>
<th>Dernière mise à jour</th>
</tr>
<?php
$cn = new cConnexion("127.0.0.1", "app_windows", "root", "jrt12345");
if($cn->DBConnexion())
{
$getData = $cn->Select("SELECT rtd_dateTime, rtd_tagId, rtd_value, tag_description, tag_units FROM realTimeData INNER JOIN tag ON tag.tag_id = realTimeData.rtd_tagId INNER JOIN plc ON plc.plc_id = tag.tag_plcId WHERE plc_id = ".$_SESSION['PLC']." AND tag_realTimeData = 1 AND tag_alarmeData = 0");
if($getData != null)
{
while($Data = $getData->fetch())
{
echo '<tr id="'.$Data['rtd_tagId'].'">';
echo '<td id="Description">'.$Data['tag_description'].'</td>';
echo '<td id="Value">'.$Data['rtd_value'].'</td>';
echo '<td id="Units">'.$Data['tag_units'].'</td>';
echo '<td id="Date">'.$Data['rtd_dateTime'].'</td>';
echo '</tr>';
}
}
}
?>
</table>
<a id="cmdRetour" href="Accueil.php">Accueil</a>
谢谢 !