将数据用insert插入数据库表中,汉字显示为乱码,字母和数字正常,在数据库表中直接输入汉字,显示正常,这是怎么回事呢?要怎么将乱码的汉字显示正常呢?php代码如下:<?php
$username=$_POST["username"];
$pwd=$_POST["pwd"];
$repeat_pwd=$_POST["repeat_pwd"];
$name=$_POST["name"];
$email=$_POST["email"];if(!empty($username))
{
$db=@new mysqli("127.0.0.1", "root", "root", "hawks");
if(mysqli_connect_errno())
{
echo"数据库连接失败!<br>\n";
echo mysqli_connect_error();
exit;
}$sql="INSERT INTO hawks(f_username,f_password,f_name,f_email) VALUES";
$sql .="('$username', '$pwd', '$name', '$email')";$rs=$db->query($sql);
if(!$rs)
{
$db->close();
echo '数据插入失败!';
echo mysqli_connect_error();
exit;
}echo "<font color='red' size='5'>恭喜您注册成功</font><br>\n";
}
?>
$username=$_POST["username"];
$pwd=$_POST["pwd"];
$repeat_pwd=$_POST["repeat_pwd"];
$name=$_POST["name"];
$email=$_POST["email"];if(!empty($username))
{
$db=@new mysqli("127.0.0.1", "root", "root", "hawks");
if(mysqli_connect_errno())
{
echo"数据库连接失败!<br>\n";
echo mysqli_connect_error();
exit;
}$sql="INSERT INTO hawks(f_username,f_password,f_name,f_email) VALUES";
$sql .="('$username', '$pwd', '$name', '$email')";$rs=$db->query($sql);
if(!$rs)
{
$db->close();
echo '数据插入失败!';
echo mysqli_connect_error();
exit;
}echo "<font color='red' size='5'>恭喜您注册成功</font><br>\n";
}
?>
在这句之前加mysql_query("set names utf-8");
根据自己的编码格式写.
也还是一样问题
//应该是这样吧,$db 如果你是utf8编码,否则换成GBK
$db->query("SET NAMES utf8");
这些都要统一为一种编码。统一了后,在连接数据库后,最好也$db->query("SET NAMES 你的编码");
mysql_query("set names 'gbk'");要根据你的编码设~