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

仅显示HTML/PHP Sysmbol/Charsat???而不是真的,php,html,Php,Html,我只是写了一些PHP代码从数据库中检索数据,昵称中的数据有一个符号和一些唯一的字符。当我想在浏览器上显示它时,一些数据会显示出来???文本而不是真实文本。我已经添加了一些字符集,但看起来没有任何效果。我使用此代码在我的Wordpress中显示供您参考 <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <?php header('Conte

我只是写了一些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++;
}
while($db=odbc\u fetch\u数组($rank))
{
$string=$db['NickName'];
if(mb_detect_编码($string,'utf-8',true)==false){
$string=mb_convert_编码($string,'utf-8','iso-8859-1');
}
回音“.$i.”;
回显“.$string.”;
回声'.$db['FightPower'].';
回声';
$i++;
}

First
header()
应在任何输出(包括html、空格等)之前发送。其次,表使用的编码是什么?与unicodes相比,ISO-8859-1非常有限。请尝试此ini_集('mssql.charset','UTF-8');结果还是一样。对不起,我不知道。我所知道的是昵称数据类型是nvarchar(50),数据库的集合是Latin1_General_CI_Asp请尝试这个$nick=iconv(“CP850”,“UTF-8//TRANSLIT“,$db['昵称]);或者,试试这个,echo iconv('UCS-2LE','UTF-8',$db['昵称]);