大家好,请教个字符集的问题
我已经把
httpd.conf 中设置 AddDefaultCharset gb2312
php.ini 中设置 default_charset = "gb2312"
my.cnf 中设置
[mysqld]
default-character-set=gb2312
[mysql]
default-character-set=gb2312并且
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | gb2312                     | 
| character_set_connection | gb2312                     | 
| character_set_database   | gb2312                     | 
| character_set_filesystem | binary                     | 
| character_set_results    | gb2312                     | 
| character_set_server     | gb2312                     | 
| character_set_system     | utf8                       | 
| character_sets_dir       | /usr /mysql arsets/ | 
+--------------------------+----------------------------+但是页面出来的还是中文乱码,加上一句
mysql_query('SET character_set_results=gb2312');
就正常显示中文了为什么经在my.cnf设置过了不清作用,非要加上mysql_query来设置呢?不求甚解,请高手指点

解决方案 »

  1.   

    MY.CNF 中的设置是SERVER的字符集,即MYSQL服务的默认字符集。除此之外,还需要设置访问程序端的字符集。 就象别人发了个 LONG给你,没人知道是 "龙" 还是 "长"?你可以参考一下这个贴子
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  2.   


    非常感谢您的回答,mysql的字符机制,大概了解,但是还有一些疑惑
    my.cnf设置有mysql mysqld clinet,如果我在clinet下加上字符设置,是不是同样能够指定"LONG"的字符集?换句话说,有没有什么办法是一劳永逸的,不用每次mysql_query去设置?难道每次用mysql_query去设置是必须的麽,在我全部把字符设为gb2312的情况下。
      

  3.   

    PHP中应该可以,不过你要到PHP版去问一下了。