最近的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.看代码吧,

[cpp] view plain copy

  1. int rows = mysql_num_rows(res);  
  2.   
     
  3. int fields = mysql_num_fields(res);  
  4.   
     
  5. for (int i=0;i<rows;i++)  
  6. {  
  7.     MYSQL_ROW row = mysql_fetch_row(res);  
  8.   
     
  9.     unsigned long *lengths = mysql_fetch_lengths(res);  
  10.   
     
  11.     for (int j=0;j<fields;j++)  
  12.     {  
  13.         printf("%s\n",row[j]);  

 
 

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

 
 

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

 

原文:http://blog.csdn.net/yynetsdk/article/details/6923940

mysql CAPI 接口 读取中文乱码的解决方案(转)的更多相关文章

  1. mysql插入表数据中文乱码问题解决方案

    一.问题 开发中遇到将其它数据库数据插入到mysql数据库表中一直会报类似如下错误: Incorrect string value: '\xE6\x88\x91' for column 'name' ...

  2. [转]mysql导入导出数据中文乱码解决方法小结

    本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 ...

  3. File.ReadAllText 读取中文乱码问题

    原文:File.ReadAllText 读取中文乱码问题 用 File.ReadAllText(filepath)   去读取中文txt文件会遇到乱码问题,我自己测试了一下,ANSI编码的txt才会出 ...

  4. Mysql 导入导出csv 中文乱码

    这篇文章介绍了Mysql 导入导出csv 中文乱码问题的解决方法,有需要的朋友可以参考一下   导入csv: load data infile '/test.csv' into table table ...

  5. mysql中Incorrect string value乱码问题解决方案

    mysql中Incorrect string value乱码问题解决方案   你是否遇到过类似以下错误? java.sql.SQLException: Incorrect string value: ...

  6. Delphi+MySQL:TADOQuery使用插入中文乱码解决方法

    Delphi+MySQL:TADOQuery使用插入中文乱码解决方法 with adoquery dobeginclose;sql.clear;sql.text:=' insert into test ...

  7. InputStream 读取中文乱码 扩展

    对于InputStream读取中文乱码,下面这段话给出了很好的解释,以及后续编码上的扩展. BufferedInputStream和BufferedOutputStream是过滤流,需要使用已存在的节 ...

  8. mysql 恢复数据时中文乱码

    mysql恢复数据时中文乱码,解决办法. 用source命令导入mysql数据库怎么设置中文编码 1.导出数据时指定编码在导出mysql sql执行文件的时候,指定一下编码格式: mysqldump ...

  9. MySQL修改配置文件 避免中文乱码

    MySQL修改配置文件 避免中文乱码 MySQL安装后默认的服务器字符集是拉丁文,也就是说默认 character_set_server = latin1 ,这是造成 MySQL 中文乱码的主要原因之 ...

随机推荐

  1. Access restriction: The method XXX from the type XXX is not accessible due to restriction XXX

    插件重构的时候 遇到这个问题 Access restriction: The method setDefaultAutoCommit(boolean) from the type BasicDataS ...

  2. Grid布局方式

    wp7中Grid布局类似HTML中的表格,但是又不太一致! 为了测试新一个3行3列的Grid 方了方便,剔除掉其它XAML代码 [c-sharp:collapse] view plaincopy   ...

  3. ECSHOP商城网站建设之自定义调用广告方法(二)

    原文地址:http://www.cnblogs.com/zgzy/p/3598991.html 使用ecshop进行商城网站建设时,ecshop默认的很多功能对于我们个性化设计之后不太使用.今天我们主 ...

  4. 利用MPMoviePlayerViewController 播放视频 iOS

    方法一: @property (nonatomic, strong) MPMoviePlayerController *player; NSString *url = [[NSBundle mainB ...

  5. [开源]Google code Android开源项目(一)

    [Android分享] [开源]Google code Android开源项目(一) [复制链接]     449122717 2 主题 2 好友 816 积分 No.4 中级开发者 升级  19.3 ...

  6. 关于面试总结3-SQL查询

    前言 select top n 形式的语句可以获取查询的前几个记录,但是 mysql没有此语法,mysql用limit来实现相关功能. LIMIT子句可以被用于强制 SELECT 语句返回指定的记录数 ...

  7. poj 1325 Machine Schedule 题解

    Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14479   Accepted: 6172 ...

  8. verilog语法实例学习(3)

    Verilog 操作运算符 算术运算符 +,-,*,/,**(加/减/乘/除/幂运算),乘法运算的结果的位宽是乘数和被乘数位宽的和. 在进行整数的除法运算时,结果要略去小数部分,只取整数部分:而进行取 ...

  9. POJ 1451 T9 (字典树好题)

    背景:为了方便九宫格手机用户发短信,希望在用户按键时,根据提供的字典(给出字符串和频数),给出各个阶段最有可能要打的单词. 题意: 首先给出的是字典,每个单词有一个出现频率.然后给出的是询问,每个询问 ...

  10. SD内存卡禁止写入只读怎么办?另类SPI模式修复坏卡

    这几天很郁闷,买的32G TF卡老出问题,三星的标,不知道是不是正品,标称C10,且不说是不是真的三星和真的C10,反正测试一下容量倒是真的,价格么也比较亲民,好像是69块?   哎,可惜呀,好景不长 ...