GetPrivateProfileString 中文乱码解决

这篇具有很好参考价值的文章主要介绍了GetPrivateProfileString 中文乱码解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如:

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

CString icon_name; 

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


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

获取到的shidu就是乱码

解决方式文章来源地址https://www.toymoban.com/news/detail-704934.html

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());
}

到了这里,关于GetPrivateProfileString 中文乱码解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决.properties文件中文读取乱码问题(idea Java)

    1、原始代码 未加读取.properties文件的规则 debug运行截图: 2、加入.properties读取规则 debug截图: 至此 问题已解决!

    2024年02月16日
    浏览(32)
  • 【Java文件导出乱码】java导出文件中文名乱码或下划线或百分号解决方法(已解决)附源码

    【 写在前面 】其实导出这个功能在业务需求中是很多的,今天我就先不重点介绍导出实现过程,主要给大家讲解一下导出文件时候,文件名是中文的情况下会出现乱码、下划线等现象该如何去解决,如何理性分析。 涉及知识点 :java文件导出,中文名乱码,URLEncoder,java下载

    2024年02月04日
    浏览(48)
  • Java学习之Eclipse 控制台中文输出乱码解决

    Eclipse IDE for java Developers 2023-06 版本 缺省情况下,Eclipse将输出中文或非英文字符作为问号(?)或某些奇怪的字符。,它无法显示其他非英语单词。 那么想要在控制台显示中文,我们应该怎么办呢?  先找到run ----再找到里面的 Run Configurations    在跳出的页面的右边选择c

    2024年02月08日
    浏览(65)
  • 解决Java中文乱码问题:使用System.out.println输出中文字符串

    解决Java中文乱码问题:使用System.out.println输出中文字符串 在Java编程中,当我们想要在控制台输出中文字符串时,有时会遇到乱码的问题。本文将介绍如何解决这个问题,并提供相应的源代码示例。 在Java中,我们通常使用System.out.println语句来在控制台输出字符串。然而,当

    2024年02月06日
    浏览(42)
  • 【Java 进阶篇】解决Java Web应用中请求参数中文乱码问题

    在Java Web应用开发中,处理请求参数时经常会遇到中文乱码的问题。当浏览器向服务器发送包含中文字符的请求参数时,如果不正确处理,可能会导致乱码问题,使得参数无法正确解析和显示。本文将详细探讨Java Web应用中请求参数中文乱码问题,以及如何解决这个问题。 中

    2024年02月08日
    浏览(44)
  • Java文件下载中文文件名乱码的解决方案

      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作

    2024年02月13日
    浏览(55)
  • 【问题解决】Java-生成word和pdf中文乱码(小方框)

    项目中生成pdf报告采用的逻辑为:对代码中resoure下的固定的word模版进行文件读取,替换,生成word,然后word转pdf的思路。 在本地运行没有问题,签章和页面字体均为问题,但部署服务器后出现汉字乱码为小方框。 服务为docker部署,容器中没有该字体包导致 1.服务器安

    2024年01月25日
    浏览(41)
  • java实现浏览器下载附件时文件名中文乱码解决方案

    方案一:URLEncoder 解决 IE 和 谷歌浏览器的附件中文名问题。 如果客户端浏览器是 IE 浏览器 或者 是谷歌浏览器。我们需要使用 URLEncoder 类先对中文名进行 UTF-8 的编码 操作。 因为 IE 浏览器和谷歌浏览器收到含有编码后的字符串后会以 UTF-8 字符集进行解码显示。 方案二:B

    2024年03月09日
    浏览(64)
  • java中获取配置文件路径中含有中文,出现乱码的情况解决方案

    问题背景: 读取配置文件,但是读到的目录信息是中文乱码的。 第一步: 参考代码如上截图,方法即:读取jdbc配置,获取了配置文件(jdbc.properties)地址,然后加载这个文件读取配置信息,但是获取的文件目录的地址中文转译了。 第二步: 设置编码格式为utf-8,查看重新获

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包