之前set names gbk;或者 gb2312

解决方案 »

  1.   

    应该是配置的问题,谁能给我个详细的配置信息啊!!!!跪求
    我的是用apache2+php5+mysql5的,信息如下
    mysql> SHOW VARIABLES LIKE 'character_set_%';  +--------------------------+----------------------------+
      | Variable_name            | Value                      |
      +--------------------------+----------------------------+
      | character_set_client     | gbk                        |
      | character_set_connection | gbk                        |
      | character_set_database   | latin1                     | 
      | character_set_filesystem | binary                     |
      | character_set_results    | gbk                        |
      | character_set_server     | latin1                     |
      | character_set_system     | utf8                       |
      | character_sets_dir       | D:/PHP/mysql/share/charsets|
      +--------------------------+----------------------------+
      8 rows in set (0.00 sec)  mysql> SHOW VARIABLES LIKE 'collation_%';
      +----------------------+-------------------+
      | Variable_name        | Value             |
      +----------------------+-------------------+
      | collation_connection | gbk_chinese_ci    |
      | collation_database   | latin1_swedish_ci |
      | collation_server     | latin1_swedish_ci |
      +----------------------+-------------------+
      3 rows in set (0.00 sec)这里面的latin1 和 latin1_swedish_ci不知如何改为gbk和gbk_chinese_ci
      

  2.   

    用yueliangdao0608((深圳PHPER)) 提出的方法,写个简单的例子$link = mysql_connect('数据库服务器地址', 'mysql_user', 'mysql_password');
    if (!$link) {
        exit('Could not connect: ' . mysql_error());
    }
    if(!@mysql_select_db('需要操作的数据库名', $link)) {
         exit("cannot use database ".$link);
    }
    @mysql_query('set names gbk',$link);
      

  3.   

    同上
    一定要加 mysql_query('set names gbk',$link);
    我以前也是为了这个问题苦恼了很久在mysql5里只有这样才能显示中文
    之前版本好像没有这个问题。
      

  4.   

    应该不会出现这样的问题的吧,MySQL只会使数据变变成乱码吧?难道说,是你的MySQL安装不完全??
      

  5.   

    mysql_query('set names gbk'),相当于向mysql数据库服务器声明PHP向它发送的数据是采用gbk编码,这就相当于我们的web服务器可以向浏览器header声明下面的文档是采用什么编码一样,如果没有声明的话,浏览器只能猜了,所以我们一定在浏览网页时遇到过字符乱码显示的情况。
      这个数据库其实也一样的,如果不这么声明,mysql数据库多数会认为是latin-1编码的,你应该根据实际情况,你当前PHP所处理数据的编码是什么,就应该用它向数据库声明,当然数据库的表中所对应的编码最好和这个编码一样。因为你可能要用到相应的整理去排序,去找关键字……
      只要理解了这个,也就不难理解上面的一些情况了,不知道我有没有说错,说错了还望高手校正,谢谢……
      

  6.   

    加引号INSERT INTO users (uname) VALUES('".$_POST['puname']."');
      

  7.   

    问题已解决,就是在之前加“set names 'gbk'”但还有一点就是,就是mysql的语言配置