请看我的代码,下面是我的创建表的程序CREATE TABLE `class` (
`id` INT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 1000 ) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NOT NULL
) ENGINE = MYISAM CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;应该是没问题的
-------
add.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>后台</title>
</head>
<body>
<form action="add.php" method="post">
名字:<input type="text" name="name" />
<input type="submit" value="Add" name="submit"></form></body></html>------
add.php<?PHP
        if($name==""){
echo"名称未填写";
echo"<a href=javascript:history.go(-1);>返回</a>";
exit();
        }
    if($petclassname){
    require_once("../conn.php");
  $exec="insert into class (name) values ('".$_POST['name']."')";
$result=mysql_query($exec) or die(mysql_errno.'-'.mysql_error());
echo "成功";
echo "<a href=javascript:history.go(-1);>返回</a>";
@mysql_close($conn);
}
?>上面是我代码,都是GB2312的编码,我现在遇到的问题是,我写入到数据库中的是乱码,在库中显示的是乱码,通过程序读取显示出来的也是乱码,请问这个该则么解决呢?

解决方案 »

  1.   

    http://topic.csdn.net/u/20071124/08/3b7eae69-ed1d-4a77-8895-9930bf3601af.html
      

  2.   

    你选库前mysql_query("set names 'gb2312';");看看?
      

  3.   

    $conn=mysql_connect('localhost','root','123456');
    mysql_query("SET NAMES 'gb2312'");//加上试下
    mysql_select_db("gb2312",$conn);
      

  4.   

     2、4楼都就百正确的贴这个代码
    require_once("../conn.php"); 
    问题多数出在这里
      

  5.   

    我这里的conn.php
    代码是$hostname="p50mysql89.secureserver.net";
    $username="sa";
    $password="sa159852";
    $dbname="thread";
    mysql_connect($hostname,$username, $password);
    mysql_select_db($dbname);我想在不修改其他地方的代码,只修改conn的话
    是不是写成$hostname="p50mysql89.secureserver.net";
    $username="sa";
    $password="sa159852";
    $dbname="thread";
    mysql_connect($hostname,$username, $password);
    mysql_query("SET   NAMES   'gb2312'");
    mysql_select_db($dbname);是不是这样呢?
      

  6.   

    兄弟你用的是iis配置的吧,与我的情况一样,呵呵
      

  7.   

    以前我也遇到过类似问题,我后来是在数据库操作前都加上mysql_query("SET NAMES 'binary'");不过再有什么乱码了。