我目前用到的几个函数,只要是接受字符串型参数的函数,全都是 char 型。各位都知道汉字是 whcar_t 型的。这可怎么办啊?
    我在安装MYSQL的时候,好不容易算是会配置了字符集 ---- 选择了gb开头的,然后才使得MYSQL自带的控制台程序能输入输出中文。 
     以下面的代码为例,经过反复试验,得知错误就出现在 mysql_real_query 函数的位置。当把上面的表名换成英文就可以输出0了。 我把后面的都注释掉了,为的是从头查找错误。  那行输出 mysql_real_query 的返回值是1。

#include "iostream"
#include <windows.h>
#include <winsock.h>
#include <stdio.h>
#include "C:\\Program Files\\MySQL\\MySQL Server 5.1\\include\\mysql.h"
using namespace std;void main()
{
MYSQL       mysql;
MYSQL_RES   * res;
MYSQL_ROW   row;
char        * query;
int t,r; mysql_init(&mysql);
mysql_real_connect(&mysql,0,"root","1","ab",3306,0,0);
query = "select * from 学生成绩表";
cout<<mysql_real_query(&mysql,query,strlen(query));
res = mysql_store_result(&mysql);
// cout<<res;/*
while (row = mysql_fetch_row(res) )
{
for(t=0;t<mysql_num_fields(res);t++)
{
// printf("%s",row[t]);
// cout<<row[t];
}
printf("\n");
}
*/
/*
printf("mysql_free_result...\n"); mysql_free_result(res); //free result after you get the result ::Sleep (1); //execute the insert query query = "insert into t学生成绩表 values('HH',10,10,10)";
t= mysql_real_query(&mysql,query,(unsigned int) strlen(query)); if(t)
printf("Error making query:  %s\n",mysql_error(&mysql));
else
printf("[%s] made...\n",query);
*/
mysql_close(&mysql);}