在vs2005下用C api连接mysql数据库,mysql安装时设置编码是utf8,
但如果数据库中是正常的中文字符,查询出来也是中文字符,没有问题,
但在insert进去的中文字符,却是乱码,查询也是乱码
以下是在数据库中看到的乱码字符
=================================================================================================
INSERT INTO `t_evaluateinfo` (`ID`, `SATISFACTION`, `EMP_NAME`, `NETADDR_NAME`, `DDTT`, `NETADDR_NO`, `DESCC`) VALUES
(1,'满意','小沈阳','南山蛇口营业厅','2010-01-02 08:44:23','wd456','fd'),//这个是手动输入的
(43,'fd',NULL,NULL,NULL,NULL,NULL),
(44,'fd',NULL,NULL,NULL,NULL,NULL),
(45,'ÂúÒâ',NULL,NULL,NULL,NULL,NULL),
(50,'ÂúÒâ',NULL,NULL,NULL,NULL,NULL),
(51,'ÂúÒâ','СÉòÑô','ÄÏɽÉß¿ÚÓªÒµÌü','2010-01-02 08:44:23','wd456','fd'),
(54,'·Ç³£ÂúÒâ','³ÉÁú','ÂÞºþÁ«ÌÁÓªÒµÌü','2010-06-24 15:50:36','wd123','descc'),
=====================================================================================================
if((mysql=mysql_init((MYSQL*)0))&&
mysql_real_connect(mysql, "127.0.0.1", "root", "123456",
"evaluateweb_int_flyoadb", 3306, NULL, 0))
{
AfxMessageBox("连接失败");return ;
}
CString insertMysql ="insert into t_evaluateinfo (SATISFACTION) values('一般')";
if ( mysql_query(mysql,insertMysql ))
{
AfxMessageBox("添加失败");return ;
}
==============================================================================================
有人推荐用这个设置,
mysql_query("SET NAMES utf8");一个参数是mysql句柄,一个是sql语句,这个应该不行
以下两种方法都试了,都不行,
mysql_set_character_set(mysql, "utf8");
int ret = mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "utf8");
但如果数据库中是正常的中文字符,查询出来也是中文字符,没有问题,
但在insert进去的中文字符,却是乱码,查询也是乱码
以下是在数据库中看到的乱码字符
=================================================================================================
INSERT INTO `t_evaluateinfo` (`ID`, `SATISFACTION`, `EMP_NAME`, `NETADDR_NAME`, `DDTT`, `NETADDR_NO`, `DESCC`) VALUES
(1,'满意','小沈阳','南山蛇口营业厅','2010-01-02 08:44:23','wd456','fd'),//这个是手动输入的
(43,'fd',NULL,NULL,NULL,NULL,NULL),
(44,'fd',NULL,NULL,NULL,NULL,NULL),
(45,'ÂúÒâ',NULL,NULL,NULL,NULL,NULL),
(50,'ÂúÒâ',NULL,NULL,NULL,NULL,NULL),
(51,'ÂúÒâ','СÉòÑô','ÄÏɽÉß¿ÚÓªÒµÌü','2010-01-02 08:44:23','wd456','fd'),
(54,'·Ç³£ÂúÒâ','³ÉÁú','ÂÞºþÁ«ÌÁÓªÒµÌü','2010-06-24 15:50:36','wd123','descc'),
=====================================================================================================
if((mysql=mysql_init((MYSQL*)0))&&
mysql_real_connect(mysql, "127.0.0.1", "root", "123456",
"evaluateweb_int_flyoadb", 3306, NULL, 0))
{
AfxMessageBox("连接失败");return ;
}
CString insertMysql ="insert into t_evaluateinfo (SATISFACTION) values('一般')";
if ( mysql_query(mysql,insertMysql ))
{
AfxMessageBox("添加失败");return ;
}
==============================================================================================
有人推荐用这个设置,
mysql_query("SET NAMES utf8");一个参数是mysql句柄,一个是sql语句,这个应该不行
以下两种方法都试了,都不行,
mysql_set_character_set(mysql, "utf8");
int ret = mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "utf8");
mysql_query("SET NAMES utf8");一个参数是mysql句柄,一个是sql语句,这个应该不行你要设置为gbk或是gb2312
mysql_set_character_set(mysql,"gb2312")