我只是编写一些PHP代码来从数据库中检索数据,昵称中的数据有一个符号和一些唯一的字符。当我想在浏览器上显示它时,一些数据显示???文本而不是真实文本。我已经添加了一些字符集,但它看起来没有任何效果。供您参考,我使用此代码在我的 WordPress 中显示。
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<?php header('Content-type: text/html; charset=ISO-8859-1'); ?>
</head>
<body>
<?php
$dbhost = 'DRIVER={SQL Server};./SQLEXPRESS;DATABASE=DB_Tank';
$dbuser = "sa";
$dbpass = "123";
$connection = odbc_connect($dbhost, $dbuser, $dbpass);
$query = "SELECT TOP 10 NickName,FightPower FROM Sys_Users_Detail WHERE IsExist = 'True' ORDER by FightPower DESC";
echo '<table align="center" ><tr>';
$rank = odbc_exec($connection, $query);
$i = 1;
while($db = odbc_fetch_array($rank))
{
echo '<td width="50" align="left">'.$i.'</td>';
echo '<td width="300" align="left">'.$db['NickName'].'</td>';
echo '<td width="150" align="left">'.$db['FightPower'].'</td>';
echo '</tr>';
$i++;
}
echo '</table>';
?>
查看一些输出:???输出
数据库中的昵称:来自数据库的真实一
PHP 代码保存 UTF8 格式。
删除标头。
<?php header('Content-type: text/html; charset=ISO-8859-1'); ?>
右:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
试试这个
while($db = odbc_fetch_array($rank))
{
$string = $db['NickName'];
if (mb_detect_encoding($string, 'utf-8', true) === false){
$string = mb_convert_encoding($string, 'utf-8', 'iso-8859-1');
}
echo '<td width="50" align="left">'.$i.'</td>';
echo '<td width="300" align="left">'.$string.'</td>';
echo '<td width="150" align="left">'.$db['FightPower'].'</td>';
echo '</tr>';
$i++;
}