PHP与mysql连接后显示中文乱码
但是放到我虚拟主机上面就有问题了
虚拟主机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")
?>
求教了.困扰整整一天了 展开
我 想知道一件事情。
你能不能把乱码的情况发出图片呢
你看看数据表是不是乱码。
我挺想知道的
这样我好判断问题啊
如果你的乱码是这样
那么你的动态代码就这么写:
<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插入部分,有可能是插入的字符集有问题。
不行你重新建数据表
放在echo 输出之前...或者放在程序第一行.
额,放在第一行后.整个都乱码了
mysql_query("SET NAMES UTF8");
修改成
mysql_query("SET character_set_connection = UTF8,character_set_results = UTF8 ,character_set_client=binary",$link);
是UTF8保存的
试试
set names 'utf8'
这位大哥没看代码吧
代码有这句
我加单引号也没用
还是一样
额 糗大了