HTML/PHP Sysmbol/Charsat 仅显示???而不是真实的



我只是编写一些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++;
}

最新更新