我在my.ini中分别设置
default-character-set=gb2312
default-character-set=utf8
default-character-set=gbk
来启动Mysql,在终端插入中文,只有设置为gb2312、gbk才能正常插入和显示;但无论设置为哪一个,在代码中使用mysql_query(l_pMyData,"insert into info values('第八月')")插入中文时,始终插入失败;使用mysql_query(l_pMyData,"setcharacter_set_connection=utf8,
                character_set_connection=gbk,character_set_results=gb2312")则插入中文成功,但用终端查看还是乱码。好像很复杂,望高手点拨一下吧!

解决方案 »

  1.   


    是不是client和server的字符集设置要一样呢?你把他们都设为utf8试试
      

  2.   

    你也好乱,MYSQL不应该在这里问.这里是SQL SERVER.
      

  3.   

    我发现了一个奇怪的规律,client,result,connection都为utf8时,插入中文总是失败,都为gbk或gb2312或三个中有一个不一样都能插入中文成功。现在终于解决了,我的方案是:
    启动时:default-character-set=gbk
    建表info:mysql_query(l_pMyData,"create table if not exists info(name char(32))  
                                                                    character set gbk");
    再设置:mysql_query(l_pMyData,"set names gbk");
    插入中文:mysql_query(l_pMyData,"insert into di values('乱码')");插入成功在终端处查看:先 >set names gbk> select * from di;
    +------+
    | name |
    +------+
    | 乱码 |
    +------+
    1 row in set (0.00 sec)
    显示果然是‘乱码’,哈哈