如:

读取ini文件的属性值(中文)问乱码
我调用下面的接口,从ini配置文件中读取相关的属性值

CString icon_name; GetPrivateProfileString(szTypeName,szIconName,"",icon_name.GetBuffer(MAX_PATH),MAX_PATH,strIniPath);

配置文件内容如下:
[devtree]
wendu=111111111
shidu=我爱你侃大山

获取到的shidu就是乱码

解决方式:

CString CProfile::GetString(LPCTSTR strSection, LPCTSTR szName, LPCTSTR szDefault)
{char szBuffer[MAX_PATH];CString szValue = _T("");GetPrivateProfileString(strSection, szName, szDefault,szBuffer, MAX_PATH, m_szIniName);int iLen = strlen(szBuffer);if (iLen > 0)szValue = szBuffer;string  strtest = UTF8ToAnsi(szBuffer);szValue = strtest.c_str();return szValue;}
std::wstring UTF8ToUnicode(const char* strSrc)
{std::wstring wstrRet;if (NULL != strSrc){int len = MultiByteToWideChar(CP_UTF8, 0, strSrc, -1, NULL, 0) * sizeof(WCHAR);WCHAR* strDst = new(std::nothrow) WCHAR[len + 1];if (NULL != strDst){MultiByteToWideChar(CP_UTF8, 0, strSrc, -1, strDst, len);wstrRet = strDst;;delete[]strDst;}}return wstrRet;
}
std::string UnicodeToAnsi(const WCHAR* strSrc)
{std::string strRet;if (NULL != strSrc){int len = WideCharToMultiByte(CP_ACP, 0, strSrc, -1, NULL, 0, NULL, NULL);char* strDst = new(std::nothrow) char[len + 1];if (NULL != strDst){WideCharToMultiByte(CP_ACP, 0, strSrc, -1, strDst, len, NULL, NULL);strRet = strDst;delete[]strDst;}}return strRet;
}std::string UTF8ToAnsi(const char* strSrc)
{return UnicodeToAnsi(UTF8ToUnicode(strSrc).c_str());
}

也就是说默认我们新建的.ini文件(也就是个文本文件),存储格式为utf-8.. 所以需要转换一下

这就好像与http或者数据库操作一样,都需要做这么一个动作了。

记录一下,希望对你有小帮助!

GetPrivateProfileString 中文乱码解决相关推荐

  1. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**

    原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)-–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...

  2. pycharm 运行控制台中文乱码解决办法

    pycharm 运行控制台中文乱码解决办法

  3. vs code中文乱码解决方法

    修改 1.(安装方法) 2.显示终端输入数据输出结果(完美解决) 3.修改部分:中文乱码解决方法 第一步: 第二步: 1.(安装方法) 转载于: https:blog.csdn.net/qq_4304 ...

  4. Zabbix 中文乱码解决

    Zabbix 中文乱码解决 1.在本地的C:\Windows\Fonts下选择自己喜欢的字体,此处选择黑体(我只测试过宋体,楷体,黑体,幼圆其他中文字体应该都支持) 在C:\Windows\Fonts ...

  5. Ubuntu10.04下gFtp2.0.19 远程客户端中文乱码解决方法

    Ubuntu10.04下gFtp2.0.19 远程客户端中文乱码解决方法如下: 1.打开"gFTP-FTP-属性-常规-远程字符集": 2.将远程字符集设置为:gb2312,gbk ...

  6. navicat for mysql 显示中文乱码解决办法

    navicat for mysql 显示中文乱码解决办法   最近遇到一个问题,用navicat for mysql 打开数据库时全都显示的是乱码(在用程序代码插入数据之前确保字符不是乱码),遇到问题 ...

  7. python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色)

    python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) 参考文章: (1)python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) (2)https://www.cnblog ...

  8. Sublime Text 3中文乱码解决方法以及安装包管理器方法

    Sublime Text 3中文乱码解决方法以及安装包管理器方法 参考文章: (1)Sublime Text 3中文乱码解决方法以及安装包管理器方法 (2)https://www.cnblogs.co ...

  9. axios请求GBK页面中文乱码解决方法

    axios请求GBK页面中文乱码解决方法 参考文章: (1)axios请求GBK页面中文乱码解决方法 (2)https://www.cnblogs.com/bjhl/articles/10514038 ...

最新文章

  1. 搭建独立博客,这款评论插件不能错过
  2. C# 的扩展方法在 LINQ 中实现数组排序
  3. cv mat的shape_将ndarray转换为cv::Mat的最简单方法是什么?
  4. 【机器学习】机器学习用到的常用术语
  5. Coinbase及Bakkt为Paul Tudor Jones的家族对冲基金提供托管服务
  6. 1秒替换视频背景,阿里AI获CVPR 2020四项世界冠军
  7. springboot系列(三) 启动类中关键注解作用解析
  8. 第十四章 深度确定性策略梯度(Deep Deterministic Policy Gradient Algorithms,DDPG)-强化学习理论学习与代码实现(强化学习导论第二版)
  9. sql server里执行delete或者update操作产生大量事务日志,导致空间不够,执行失败,能不能设置此类动作时不生成事务日志的...
  10. php微博自动评论,新浪微博自动评论工具
  11. 医咖会免费SPSS教程学习笔记—非参数检验之两相关样本
  12. 【多元函数微分学】易错点总结
  13. polkit启动失败_Linux MySQL 常见无法启动或启动异常的解决方案(上)
  14. 百度地图的一些踩坑 marker网络图片不显示
  15. android 百度地图语音播报,百度地图APP中的语音播报如何打开或关闭
  16. 电子商务数据分析的认识
  17. request进行搜索引擎关键词提交
  18. 大数据专业适合考研吗?
  19. 基于微信小程序的便捷记账本小程序-计算机毕业设计
  20. 一种解决sketchup导出fbx格式后再次导入到sketchup材质丢失的解决方案

热门文章

  1. DVWA靶场--文件上传漏洞(low、medium、high等级)
  2. hdu5304 Eastest Magical Day Seep Group#39;s Summer 状压dp+生成树
  3. ES官网reference翻译文章(19)—Scripted Metric Aggregation
  4. PowerPC基于vxWorks的中断初始化分析
  5. ZooKeeper 论文阅读思维导图
  6. 70. 爬楼梯 --力扣
  7. XCode教程之 如何在苹果开发者平台添加设备UDID
  8. python基础 python函数 函数概念 函数的多种参数 多种调用参数 装包 解包 函数代码块 函数的返回值
  9. dell precision3551电脑安装win10+ubuntu
  10. 解决python发邮件报错(554, 'DT:SPM 163 smtp11,D8CowA..