`

VC下CHttpFile.ReadString 中文读取乱码的编码方法

阅读更多
//UTF-8 to GB2312
CString WebProcess::Convert(CString str,int sourceCodepage, int targetCodepage){

	int len = str.GetLength();
	int unicodeLen = MultiByteToWideChar(sourceCodepage,0,str,-1,NULL,0);

	wchar_t *pUnicode;
	pUnicode = new wchar_t[unicodeLen+1];

	memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t));
	MultiByteToWideChar(sourceCodepage,0,str,-1,(LPWSTR)pUnicode,unicodeLen);

	BYTE *pTargetData = NULL ;
	int targetLen = WideCharToMultiByte(targetCodepage,0,(LPWSTR)pUnicode,-1,(char*)pTargetData,0,NULL,NULL);

	pTargetData = new BYTE[targetLen+1];
	memset(pTargetData,0,targetLen+1);

	WideCharToMultiByte(targetCodepage,0,(LPWSTR)pUnicode,-1,(char*)pTargetData,targetLen,NULL,NULL);
	
	CString rt;
	rt.Format("%s",pTargetData);

	delete []pUnicode;
	delete []pTargetData;


	return rt ;

}

 

分享到:
评论

相关推荐

    GetHtml.rar_CHttpFile GetHtml_Gethtml_gethtml source vc_vc CHttp

    【标题】"GetHtml.rar_CHttpFile GetHtml_Gethtml_gethtml source vc_vc CHttp" 描述了一个使用VC2005开发的程序,该程序基于CHttpFile类,用于获取并读取网页的原始HTML代码。 【CHttpFile类】是Microsoft的MFC...

    C++使用 CHttpFile类,实现HTTP协议下请求数据,实现HTTP协议下多文件上传!VS2013开发,可直接运行!

    Base64编码将任意二进制数据转换为可打印的ASCII字符,解决了中文字符在传输过程中可能出现的乱码问题。在C++中,可以使用开源库如`libcurl`或自己编写Base64编码和解码的函数。 2. **模拟表单上传**:在HTTP协议下...

    VC读取网页的内容

    请注意,实际的代码需要处理错误和异常,并可能需要添加额外的逻辑来处理重定向、编码问题、身份验证等复杂情况。此外,现代的网络编程通常会考虑HTTPS、异步操作和多线程,以提高性能和安全性。 总的来说,"VC读取...

    CHttpFile介绍

    **CHttpFile类详解及其使用方法** 在Windows编程中,Microsoft提供了一套称为MFC(Microsoft Foundation Classes)的库,它扩展了C++标准库,为开发者提供了方便的API来处理Windows操作系统。在MFC中,`CHttpFile`...

    VC实现重启路由器.pdf

    尽管Base64编码可以保护数据免受肉眼直接读取,但它不是一种安全的加密手段,因为Base64编码的数据可以很容易地被解码。 3. **GET请求** GET请求是HTTP协议中的一个方法,用于从服务器获取资源。在本文中,重启...

    VC++实现基于MFC的Web服务器程序

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库在Visual C++ 6.0环境下实现一个简单的Web服务器程序。MFC是微软为C++开发人员提供的一套面向对象的类库,它封装了Windows API,使得Windows...

    功能强大的VC访问HTTP网页类

    功能强大的VC访问HTTP类。 实现了HTTP的GET、POST和图片下载方法。能自动提取和保存返回的cookies,在发送数据包时能自动添加保存好的cookies。能自动识别网站的编码,在接收数据后,自动将编码转换。在发送数据时,...

    VC HTTP请求 GET POST

    在网上找的大都是多字节的工程代码,传参以及返回参数中有中文都会...现在VC工程几乎都是Unicode字符集,这个类已经完全解决了中文乱码问题,并且支持Get和Post请求,在VS2015下已经测试通过,注释详细,有使用示例。

    VC 获取公网 ip 地址

    ### VC 获取公网 IP 地址方法解析 #### 一、背景与目的 在软件开发过程中,有时我们需要获取当前计算机所在的公网 IP 地址。这在许多应用场景中都非常有用,例如远程服务配置、网络调试等。本文将详细介绍一个使用...

    vc发邮件及访问网址源码

    4. 读取响应内容,可能需要处理编码问题,如UTF-8或GBK。 5. 解析HTML内容,可以使用`CInternetStream`读取,或者使用第三方库如TinyXML或AngleSharp进行解析。 6. 完成操作后,关闭网络连接,释放资源。 在这个...

    VC 构造http协议数据的post上传图片类(MFC环境 带编码转换)模拟表单提交

    4. **执行POST请求**:使用CHttpFile对象的Write方法将POST数据发送到服务器。在模拟表单提交时,数据通常包含键值对,如"file"字段对应于图片文件内容。 5. **处理响应**:发送完数据后,我们需要读取服务器的响应...

    VC/MFC 文件下载及进度

    CHttpFile提供了读取文件内容的方法,例如Read和ReadString。 3. **CFtpConnection** 和 **CFtpFileFind**:如果文件存储在FTP服务器上,可以使用这些类进行连接和文件查找。CFtpConnection负责建立FTP连接,...

    VCNet.rar_C++网络教程

    总的来说,VC++网络教程是一个全面的学习资源,旨在帮助开发者提升网络编程技能,掌握在Windows环境下使用C++进行高效网络开发的方法。通过深入学习并实践这个教程中的内容,你将能够开发出功能强大的网络应用程序,...

    VC 网络编程VC网络编程

    在Windows环境下,VC++提供了丰富的库和工具来支持网络编程,包括Winsock(Windows Socket)API,MFC(Microsoft Foundation Classes)的网络类库等。 一、Winsock API Winsock是Windows平台上的网络通信接口,它...

    如何从本机向Web服务器上传文件 VC 源码

    - 读取并上传文件:使用CFile读取本地文件,然后通过CHttpFile写入数据。 - 错误处理:捕获和处理可能出现的异常。 - 关闭连接:释放资源,关闭文件和网络连接。 8. **实际应用**: 这种上传方式常用于软件更新...

    VC 实现的网络视频直播程序.rar

    标题中的“VC 实现的网络视频直播程序”指的是使用Visual C++(简称VC++)开发的一个网络视频直播系统。这个程序是基于MFC(Microsoft Foundation Classes)框架构建的,MFC是微软提供的一种C++库,用于简化Windows...

    Download_starhdr_Vc_

    一旦连接建立成功,你可以通过调用CInternetSession的GetFile方法创建一个CHttpFile对象。这个对象提供了读取文件内容的方法,如Read和Seek。 5. **多线程下载的实现**: 在多线程环境下,每个线程可以拥有自己的...

    VC++ HTTP Get Post请求

    4. 读取`CHttpFile`的数据,通常是通过`Read`或`ReadString`函数。 5. 关闭`CHttpFile`和`CHttpConnection`,释放资源。 示例代码: ```cpp #include <afxinet.h> void DoHttpGet() { CInternetSession session; ...

Global site tag (gtag.js) - Google Analytics