我经常在这个论坛上关注你的建议。现在我遇到了Datatable插件的问题。 在我的网站上,我创建了一张食物桌。该表从mysql数据库中获取所有数据,并使用DataTable来获得一些额外的插件。问题是DataTable没有正确编码显示某些“??”的某些字符。我看到mysql编码基于latin1而不是utf8。我如何强制使用utf8编码?
在数据库访问代码下面:
<?php
$link = mysqli_connect ("XXXXXXXX",
"XXXXX", "XXXXX", "XXXXX");
if (mysqli_connect_error()) {
die ("Problemi di connessione con il server. Riprovare più tardi");
};
?>
在为表格创建的代码下面:
<div style="overflow-x:auto;">
<table id="tabellaAlimenti" class="table table-striped">
<thead>
<tr>
<th>Nome</th>
<th>Categoria</th>
<th>Kcal</th>
<th>Carbo (g)</th>
<th>Prot (g)</th>
<th>Gras (g)</th>
</tr>
</thead>
<tbody>
<?php
$query = "SELECT * FROM databaseAlimenti";
if ($result = mysqli_query($link, $query)) {
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td id='nome'><a href='http://wellness4yourself-com.stackstaging.com/alimento/?nome=" .urlencode($row['Nome']). "'>" . $row['Nome'] . "</a></td>";
echo "<td>" . $row['Categoria'] . "</td>";
echo "<td>" . $row['kcal'] . "</td>";
echo "<td>" . $row['Carboidrati (g)'] . "</td>";
echo "<td>" . $row['Proteine (g)'] . "</td>";
echo "<td>" . $row['Grassi totali (g)'] . "</td>";
echo "</tr>";
}
};
?>
</tbody>
</table>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#tabellaAlimenti').DataTable( {
select: true,
});
});
</script>
提前致谢
答案 0 :(得分:0)
首先,您需要在mysql中为表设置正确的编码:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8;
然后,您需要检查服务器响应中的编码标头 这个标题看起来像这样:
Content-Type: text/html; charset=utf-8
如果此标头中的字符集值不正确,您可以使用php或通过.htaccess(如果使用apache)重新定义此字符串值 或通过服务器配置文件。