将数据用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";
}
?>

解决方案 »

  1.   

    $sql="INSERT INTO hawks(f_username,f_password,f_name,f_email) VALUES";
    在这句之前加mysql_query("set names utf-8");
    根据自己的编码格式写.
      

  2.   

    加入 mysql_query("set names gb2312_chinese_ci");还是一样问题
      

  3.   

    加入mysql_query("set names utf-8");
    也还是一样问题
      

  4.   

    那就是还有用iconv()函数,将变量的值的编码转码
      

  5.   

    比如:iconv("gb2312","utf-8",$username)
      

  6.   


    //应该是这样吧,$db  如果你是utf8编码,否则换成GBK
    $db->query("SET NAMES utf8");
      

  7.   

    默认的应该是latin-1,导致乱码
      

  8.   

    可以在 MYSQL数据库 字段 整理选择 gb2312_chinese_ci 就OK
      

  9.   

    首先你要知道你的数据库编码,页面存储编码,前台显示页面里meta里设置的编码。
    这些都要统一为一种编码。统一了后,在连接数据库后,最好也$db->query("SET NAMES 你的编码");
      

  10.   

    插入的sql执行前,要强制编码
    mysql_query("set names 'gbk'");要根据你的编码设~