C++Builder操作MYSQL中文乱码的解决方案

首先,数据库,表,以及连接字符串都要指定字符集,不用说了。

要注意的有以下3点

1,MYSQL安装的时候也要指定字符集。当然,在安装之后也是可以修改的,可以到mysql安装目录下的my.ini文件夹去修改。

搜索My.ini的“default-character-set”,应该有2个地方包含了default-character-set=XX,把他都改为gbk或者别的什么能支持中文的。

2,连接的时候,我们指定SQLConnection1->Params->Values["CharSet"]= "gkb";不代表就完全指定了字符集了

还需要在

SQLConnection1->Connected=true;

SQLConnection1->Execute("set NAMES'gbk';",NULL,0);//在连接后加上这一句

3,如果不用2的方法也可以,那就是要在每个包含中文值的前面加个binary函数

例如

insert into ttt (username,pwd) values ('李福伟','CH')

我们需要改成

insert into ttt (username,pwd) values (binary('李福伟'),'CH')

以上,在BCB6,BCB2009下测试通过。