void CFunc::GbkToUtf8(CString &strGBK)
{
int len = MultiByteToWideChar(CP_ACP, , (LPCTSTR)strGBK, -, NULL, );
unsigned short *wszUtf8 = new unsigned short[len + ];
memset(wszUtf8, , len * + );
MultiByteToWideChar(CP_ACP, , (LPCTSTR)strGBK, -, wszUtf8, len);
len = WideCharToMultiByte(CP_UTF8, , wszUtf8, -, NULL, , NULL, NULL);
char *pszUtf8 = new char[len + ];
memset(pszUtf8, , len + );
WideCharToMultiByte(CP_UTF8, , wszUtf8, -, pszUtf8, len, NULL, NULL);
strGBK = (CString)pszUtf8; delete []pszUtf8;
delete []wszUtf8;
return;
} void CFunc::Utf8ToGbk(CString &strUtf8)
{
int len = MultiByteToWideChar(CP_UTF8, , (LPCTSTR)strUtf8, -, NULL, );
unsigned short *wszGBK = new unsigned short[len + ];
memset(wszGBK, , len * + );
MultiByteToWideChar(CP_UTF8, , (LPCTSTR)strUtf8, -, wszGBK, len);
len = WideCharToMultiByte(CP_ACP, , wszGBK, -, NULL, , NULL, NULL);
char *pszGBK = new char[len + ];
memset(pszGBK, , len + );
WideCharToMultiByte(CP_ACP, , wszGBK, -, pszGBK, len, NULL, NULL);
strUtf8 = (CString)pszGBK; delete []pszGBK;
delete []wszGBK;
return;
} long CFunc::PackHttp(const char *URL, const char *fileName)
{
FILE *fp = NULL;
char *buffer = new char[MAXBUF];
ULONG nBytesRead = ;
CString strRead = "";
ULONG lTotal = ; CInternetSession session(NULL, , INTERNET_OPEN_TYPE_DIRECT, NULL, );
CStdioFile *pFile = NULL; memset(buffer, , sizeof(buffer));
fp = fopen(fileName, "wb"); try
{
pFile = session.OpenURL(URL, , INTERNET_FLAG_TRANSFER_BINARY | INTERNET_FLAG_RELOAD);
if (!pFile)
{
fclose(fp);
::DeleteFile(fileName);
delete []buffer;
return -;
}
nBytesRead = pFile->Read(buffer, MAXBUF - );
while (nBytesRead > )
{
lTotal += nBytesRead;
fwrite(buffer, , nBytesRead, fp);
memset(buffer, , sizeof(buffer));
nBytesRead = pFile->Read(buffer, MAXBUF - );
}
}
catch (CInternetException *e)
{
fclose(fp);
::DeleteFile(fileName);
e->Delete();
return - ;
}
fclose(fp);
return lTotal;
}

GbkToUtf8 Utf8ToGbk PackHttp的更多相关文章

  1. J07-Java IO流总结七 《 InputStreamReader和OutputStreamWriter 》

    前面在介绍FileReader和FileWriter的时候有说到,FileReader的读取字符功能,以及FileWriter的写出字符的功能,都不是它们自己实现的,而是,它们分别继承了InputSt ...

  2. 学生信息管理系统(cocos2d引擎)——数据结构课程设计

    老师手把手教了两天半,看了一下模式,加了几个功能就大功告成了!!! 给我的感想就是全都是指针! 添加图片精灵: CCSprite*  spBG = CCSprite::create("&qu ...

  3. gbk与utf-8转换

    linux: #include <iconv.h> int code_convert(char *from_charset,char *to_charset,char *inbuf,int ...

  4. utf8转gbk,libcurl中文乱码处理

    这两个转码在网页客户端处理用很常见,所使用的平台为VS2010,字符集采用多字节字符集 utf8转gbk string UTF8ToGBK(const std::string& strUTF8 ...

  5. tiny中文乱码问题,不过仅适用于windows,所以xml不可以出现中文

    我是在SetAttribute() 函数之前使用的 SetAttribute(const char* name,const char * _value) 首先得到了一个CString 类型的变量 st ...

  6. GBK、UTF8、UNICODE编码转换

    string GBKToUTF8(const std::string& strGBK) { , strGBK.c_str(), -, NULL, ); WCHAR * wszUTF8 = ne ...

  7. UTF8-GBK WideCharToMultiByte MultiByteToWideChar

    //MFC版本 CString UTF8ToGBK(const CString& strUTF8){ //确定转换为Unicode需要多少缓冲区(返回值也包含了最后一个NULL字符) int ...

  8. ZeroBraneStudio之支持GBK文件编码

    费了好大劲终于搞定了让ZBS支持打开GBK文件了.记录下过程: 看源码发现ZBS打开文件时会调用src\editor\commands.lua中的LoadFile函数,代码如下: local file ...

  9. GBK转utf-8,宽字符转窄字符

    //GBK转UTF8 string CAppString::GBKToUTF8(const string & strGBK) { string strOutUTF8 = "" ...

随机推荐

  1. iOS检测用户截屏并获取所截图片

    iOS检测用户截屏并获取所截图片 微信可以检测到用户截屏行为(Home + Power),并在稍后点击附加功能按钮时询问用户是否要发送刚才截屏的图片,这个用户体验非常好.在iOS7之前, 如果用户截屏 ...

  2. u-boot移植 III

    延续上一篇, 烧录完成后, 串口屁毛都没有了, 运行了代码比较工具, 看看问题在哪. board/100ask24x0/   没有问题, 除了lowlevel_init.S, 不过我没在uboot中用 ...

  3. Oracle安装错误“程序异常终止

    Oracle安装错误"程序异常终止.发生内部错误.请将以下文件提供给oracle技术支持部   "程序异常终止.发生内部错误.请将以下文件提供给oracle技术支持部门:" ...

  4. 类ExampleA继承Exception,类ExampleB继承ExampleA。 有如下代码片断:

    try { throw new ExampleB("b") } catch(ExampleA e){ System.out.println("ExampleA" ...

  5. Gradle使用小结

    Gradle是CI过程工具,而不是系统.持续集成过程中的构建.自动化测试.打包.发布都可以使用Gradle来完成.而持续进程过程为我们降低各方面成本,提高产品信心,提高产品质量有着非常重要的作用(不要 ...

  6. python:轮播图

    下载jquery.bxslider 参考地址:www.bxslider.com 引入jquery.bxslider.css和jquery.bxslider.js <!DOCTYPE HTML P ...

  7. oracle游标透彻详解分析

    主:本文来自:http://www.cnblogs.com/huyong/archive/2011/05/04/2036377.html 4.1 游标概念 4.1.1 处理显式游标 4.1.2 处理隐 ...

  8. js实现css、addClass、removeClass和toggleClass

    JQuery中获取CSS样式css(name):访问第一匹配元素的样式属性css(name,value):在所有匹配的元素中,设置一个样式属性的值css(properties):把一个“名/值对”对象 ...

  9. Eclipse 代码格式:“{ }”的格式设置

    Eclipse设置代码大括号的格式 编写代码有很多中风格,常见的三种风格: 1.K & R风格:这种风格的代码比较紧凑,优点是在教科书或者打印成纸张的时候比较省地方:缺点是大括号匹配问题,代码 ...

  10. Spark相关

    非常好的spark分析博客,我们team的,哈哈:http://jerryshao.me/ spark programming guide: https://github.com/mesos/spar ...