mysql中文解决方案

来源:互联网 发布:彩虹六号围攻 mac 编辑:程序博客网 时间:2024/04/25 17:53

工作中需要向mysql插入和读写中文数据,这个问题起初比较棘手,经过一段时间的investigate,顺利的解决了。

以下是解决办法:

 

1. 设置mysql服务器的字符集,是的mysql服务器的默认字符集为UTF8;

 

2. 设置表或列的字符集,最好使用UTF8编码,可以同时支持中英文。

 

3. 连接后,调用接口int mysql_set_character_set(MYSQL *mysql, char *csname),该函数为当前连接设置默认的字符集。

   注意的是,只有mysql 5.0.7及以上版本支持该函数。低版本的话,可以用set names <character setname>语句来代替。

 

4.向mysql读写的时候,把字符串都转为utf8编码。英文的utf8编码和ansi是一样的,中文的会有区别。


“MySQL Command Line Client”中输入

mysql>set names 'gb2312'

即可.

在使用MySQL C API开发程序时,在开始执行查询之前(注:conn类型是MYSQL* ),先运行mysql_set_character_set(conn, "gb2312"),也可以解决查询结果中的中文显示乱码问题 ;但是如果mysql_query调用的查询字符串中用中文字符时,就要指定字符集,如:

#include <winsock2.h>  
#include <mysql.h>
int main(int argc,char* argv[])  
{  
    MYSQL*    conn=mysql_init(NULL);    
    mysql_real_connect(conn,"localhost", "root", "a", "sqltest", 3306, NULL, 0);    
    mysql_set_character_set(conn, "gb2312") ;
    mysql_query(conn,"select * from mlib where info like _utf8'%兔年%';");//关键在_utf8
    //...一些MySQL查询结果处理语句
    mysql_close(conn);
    return 0;  
}  


原创粉丝点击