用php将中文写入mysql,在phpmyadmin中查看显示为乱码,求解决方法!!

如果在mysql命令行界面插入中文在phpmyadmin中就显示正常,
<?php
header("Content-Type:text/html;Charset=UTF-8");
$keyword="20112897+网络无法连接";
$token = strtok($keyword, "+");
$i=0;
while ($token != false)
{
$records[$i]=$token;
$token = strtok("+");
$i++;
}
$mysqli = mysqli_connect("localhost","root","","test");

if(mysqli_connect_errno()){
printf("Connect failed: %s\n",mysqli_connect_error());
exit();
}else{

mysql_query("set names utf8");
$sql="INSERT INTO nametable (number,name)VALUES('$records[0]','$records[1]')";
//mysql_query("set names utf8");
$res=mysqli_query($mysqli,$sql);
//mysql_query("SET NAMES UTF8");
if($res===TRUE){
echo "A record has been inserted.";
}else{
printf("Could not insert record :%s\n",mysqli_error($mysqli));
}
mysqli_close($mysqli);
}
?>
我用的是xampp集成环境,这是我的代码
如果在用php读出来 之前用php写进去的显示正常 而在mysql命令行添加的显示为???

在命令行添加的时候,如果是Windows系统,默认是GBK的,所以你先在命令行里面执行一句 set names utf8;
再添加,这样,在phpmyadmin中看就不是乱码了。
多学点编码的知识。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-16
查看一下数据库的数据类型是不是UTF类型的。可能是数据库的类型和传入数据的类型不匹配所以显示为乱码
第2个回答  2013-03-20
mysql>set names gbk;