VC++6.0 连接数据库MySQL 中文显示乱码

  • 2015-10-22
  • 0
  • 0

百度伊始,各种方法均指向MySQL库、表等的字符集设定。

例如在my.ini文件中添加下列内容:

[mysqld] 
default-character-set = utf8
[client] 
loose-default-character-set = utf8

还有在数据库里用语句来更改的:

set names utf8

有说用gbk的,有说用gb2312的,有说用utf8的….

然而无论我怎么改,都是乱码。

MySQL这边的数据能正常显示中文,VC++6.0 这边的程序文本框也能正常显示中文。但一连接就乱码了。。。

想来问题只能是出在连接上了。

无论是查询、录入、修改、删除,都需要在数据库连接句柄后面加上设置字符编码的语句。

当MySQL设置的字符是utf8时,VC++6.0这边设置成gbk、gb2312都可以正常显示中文,但VC++6.0程序里设置成utf8,就乱码了,而且原本的一个汉字字符会变成两个汉字字符(乱码)。

按以下代码设置后,能正常显示。

    MYSQL mysql; //数据库连接句柄
    mysql_init (&mysql);
    if(!mysql_real_connect(&mysql,"127.0.0.1","root","","student",3306,NULL,0))
    {
        AfxMessageBox("数据库连接失败"); 
        return ;
    }
else
     {
        // AfxMessageBox("数据库连接ok");  
     }
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓重点就在这↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
//设置字符编码
  mysql_query(&mysql, "SET NAMES ‘gbk’");
/*↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑重点就在这↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑*/
—————————————————————————-

附上数据库所设置的字符集查询语句
show variables like "%char%";

评论

还没有任何评论,你来说两句吧

发表评论