PHP与mysql连接后显示中文乱码

在本地测试显示中文没问题但是放到我虚拟主机上面就有问题了虚拟主机apache设置的字符编码是utf8;我建表的时候代码是这样的CREATETABLEs(idINTPRIM... 在本地测试显示中文没问题
但是放到我虚拟主机上面就有问题了
虚拟主机apache设置的字符编码是utf8;
我建表的时候代码是这样的
CREATE TABLE s(
id INT PRIMARY KEY AUTO_INCREMENT,
xh varCHAR(8),
xm varCHAR(4),
bj varCHAR(30)
)DEFAULT CHARSET utf8;
我的PHP代码是这样的
<?php
$link=mysql_connect("127.0.0.1","s_r","read");
mysql_select_db("s",$link);
mysql_query("SET NAMES UTF8");
$sql="SELECT * FROM s WHERE id=21";
$result = mysql_query($sql);
//print_r($row = mysql_fetch_array($result));
while($row = mysql_fetch_array($result))
{
echo "<table border='1'>";
echo "<tr><td>序号</td><td>学号</td><td>姓名</td><td>班级</td></tr>";
echo "<tr><td>".$row['id']."</td><td>".$row['xh']."</td><td>".$row['xm']."</td><td>".$row['bj']."</td></tr>";
echo "</table>";
}
header("Content-Type:text/html;charset:utf-8")
?>
求教了.困扰整整一天了
展开
 我来答
汲职0GL3f6
推荐于2016-09-15 · TA获得超过987个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:421万
展开全部

我 想知道一件事情。

你能不能把乱码的情况发出图片呢

你看看数据表是不是乱码。

我挺想知道的

这样我好判断问题啊 

如果你的乱码是这样

那么你的动态代码就这么写:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<!-- 声明头文件,嘿嘿header管不到这里啊。所以你得自己声明了,字符集为utf8-->

<?php

header("Content-Type:text/html;charset:utf-8");

$link=mysql_connect("127.0.0.1","root","");

mysql_select_db("s",$link);

mysql_query("SET NAMES UTF8");

$sql="SELECT * FROM s";

$result = mysql_query($sql);

//print_r($row = mysql_fetch_array($result));

while($row = mysql_fetch_array($result))

{

echo "<table border='1'>";

echo "<tr><td>序号</td><td>学号</td><td>姓名</td><td>班级</td></tr>";

echo "<tr><td>".$row['id']."</td><td>".$row['xh']."</td><td>".$row['xm']."</td><td>".$row['bj']."</td></tr>";

echo "</table>";

}

?>

如果不行继续追问就行了

记得贴出图片啊。

追问
还是不行.
追答
这是数据库问题。

";
echo "序号学号姓名班级";
echo "".$row['id']."".$row['xh']."".$row['xm']."".$row['bj']."";
echo "";
}
?>

你去mysql里看看,select出来。(select前先set names utf8;或者是set names gb2312;或者set names gbk;)
你试试哪个不会出现乱码

我这里是不会出现的
如果你的数据是通过php插入的,请检查你php插入部分,有可能是插入的字符集有问题。

不行你重新建数据表
iostream210
2011-08-14 · TA获得超过912个赞
知道小有建树答主
回答量:588
采纳率:0%
帮助的人:384万
展开全部
header("Content-Type:text/html;charset:utf-8")
放在echo 输出之前...或者放在程序第一行.
更多追问追答
追问
额,放在第一行后.整个都乱码了
追答
mysql_query("SET NAMES UTF8");
修改成
mysql_query("SET character_set_connection = UTF8,character_set_results = UTF8 ,character_set_client=binary",$link);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抓到一只柠久C1
2011-08-14
知道答主
回答量:34
采纳率:0%
帮助的人:10.7万
展开全部
php文件保存时是选择的什么格式的。保存时选择utf8试试
追问
是UTF8保存的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天外同学
2011-08-14 · TA获得超过563个赞
知道小有建树答主
回答量:2333
采纳率:100%
帮助的人:1127万
展开全部
编码问题
试试
set names 'utf8'
更多追问追答
追问
这位大哥没看代码吧
代码有这句
我加单引号也没用
还是一样
追答
额 糗大了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式