mysql CAPI 接口 读取中文乱码的解决方案

来源:未知 责任编辑:智问网络 发表时间:2013-11-10 20:25 点击:

 

最近的yymysqlsdk的开源项目里,对中文的支持不到位,因此用了1.5天的时间,对中文处理的各个情况进行了分析。

 

 

 

1.首先确认你的mysql配置文件,my.ini (只针对windows)里的配置,如没有则添加

 

[client]

 

default-character-set=gbk (是为了,开发客户端程序时,对中文的支持;如果此处设置为utf8,我没有验证过,稍后验证,哈哈)

 

[mysql]

 

default-character-set=utf8

 

[mysqld]

 

default-character-set=utf8

 

2.数据库编码属性,选择utf8,我使用的是naticat mysql。

 

3.具体到表,右键查询表信息-》ddl ,有没有 看到 一句 “ENGINE=InnoDB DEFAULT CHARSET=latin1;”

 

对了,这就是设计表的时候,naticat 默认使用的编码方式,请不要随影更改此编码方式,latin1是兼容对utf8的支持(瞎猜的)

 

4.然后就是用vc去开发客户端程序了,在real_connect后,请执行 编码设置,mysql_query(xxx,“set names latin1”);

 

5.看代码吧,

 

view plain

int rows = mysql_num_rows(res); 

 

int fields = mysql_num_fields(res); 

 

for (int i=0;i<rows;i++) 

    MYSQL_ROW row = mysql_fetch_row(res); 

 

    unsigned long *lengths = mysql_fetch_lengths(res); 

 

    for (int j=0;j<fields;j++) 

    { 

        printf("%s\n",row[j]); 

 

 

 

6.此时输出的就是utf8编码的,中文

 

 

 

以上就是我的总结,如对您有帮助,我不胜荣幸。

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • mysql-mmm
    • mysqldump命令——MySQL数据库备份还原
    • Oracle数据导入MySQL的快捷工具:MySQL Migration Toolkit
    • 简简单单储存过程——循环一个select结果集
    • MySQL数据库十大优化技巧
    • Mysql主主复制架构配置
    • Mysql安装笔记
    • MySQL Stmt预处理提高效率问题的小研究
    • Mysql的Procedure 参数为NULL问题分析
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1