VC 6.0 连接mysql 乱码处理

来源:互联网 发布:观战数据不可用 编辑:程序博客网 时间:2024/06/07 06:21

使用VC6.0连接mysql的时候,在输出中文时,会出现乱码,可以用下面的函数解决:

mysql_set_character_set(myData,"gb2312");  //这个是用在linux 下的, 

VC6.0下用这个: ret = mysql_options(conn, MYSQL_SET_CHARSET_NAME, "gb2312");//来保证你字码, 要加重记住.没这个设置写到数据mysql里就是乱码了, 汉字就是乱码 

改过之后的代码如下:

#include <malloc.h>#include <stdio.h>#include <winsock.h>#include "mysql.h"#pragma comment( lib, "libmysql.lib")void main(){char SqlText[256] = "";unsigned char buf[6];MYSQL mysql;MYSQL_RES *res = NULL;MYSQL_FIELD * fd = NULL;MYSQL_ROW row;int i = 0;mysql_init( &mysql );mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gb2312");if ( !mysql_real_connect( &mysql, "localhost", "root","1111", "spider", 3306, NULL, 0) ){puts("数据库连接失败");mysql_close( &mysql );return FALSE;}else{puts("数据库连接成功");/*sprintf( SqlText, "insert into animals(name, kg) values ('chicken',6), ('dog', 4)");//insert失败if ( mysql_query( (MYSQL *)&mysql, SqlText ) ){puts("Can't insert data to table");printf("%s\n", mysql_error(&mysql));mysql_close( &mysql );return FALSE;}*/sprintf( SqlText, "select * from category");//进行数据检索if ( !mysql_query( (MYSQL *)&mysql, SqlText )){res = mysql_store_result( &mysql );i = (int)mysql_num_rows( res );printf("Query: %s\n%d records found:\n", SqlText, i );//输出各字段名for ( i=0; fd = mysql_fetch_field(res); i++ ) {printf("%-6s\t", fd->name );}puts("");//依次读取各条记录while ( row = mysql_fetch_row(res) ){printf( "%-6s\t%-6s\t%-6s\n",row[0],row[1],row[2] );}mysql_free_result( res );}else{mysql_close( &mysql );return FALSE;}}mysql_close(&mysql);return TRUE;}


0 0
原创粉丝点击