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. css样式控制 字符个数,多余的字用省略号代替

    大家好,我是小菜 前端 ,技术不高,正在努力中充电!希望大家多多指教 <div class="show">大家好,我是小菜 前端 ,技术不高,正在努力中充电!希望大家多 ...

  2. MYSQL中replace into的用法

    新建一个test表,三个字段,id,title,uid,  id是自增的主键,uid是唯一索引: 插入两条数据 '); ');执行单条插入数据可以看到,执行结果如下: [SQL]insert into ...

  3. oracle迁移postgres之-oracle_fdw

    1. 安装oracle_fdw 在编译安装前,需要设置postgres的环境变量,如在.bash_profile中增加: export ORACLE_HOME=/u01/app/oracle expo ...

  4. Flags-Ural1225简单递推

    Time limit: 1.0 second Memory limit: 64 MB On the Day of the Flag of Russia a shop-owner decided to ...

  5. Pro Git 第一章 起步 读书笔记

    Pro Git 笔记 第1章 起步 1.文件的三种状态. 已提交:文件已经保存在本地数据库中了.(commit) 已修改:修改了某个文件,但还没有提交保存.(vim) 已暂存:已经把已修改的文件放在下 ...

  6. Overload和Override的区别

    Overload:重载 |- 在一个类中定义的若干方法 |- 所有的方法名相同,但参数类型或个数不同 |- 只有参数有关,与返回类型无关 Override:覆写 |- 在继承的关系中 |- 子类定义了 ...

  7. Jquery页面初始化的4种方式

    <script src="Scripts/jquery-1.8.2.min.js"></script> <script type="text ...

  8. 今天学的是 HTML基本元素、基本语法元素特点等,就发图片吧。

    现在我们新手用的软件是:Adobe Dreamweaver CS6 按照下面格式来改,以后点HTML5直接就改过来了. 可以敲敲这些代码,大家一起学习. <!doctype html>&l ...

  9. Android Device Monitor工具的DDMS使用

    Dalvik Debug Monitor Server(DDMS)是主要的Android调试工具之一 1.打开android studio->tools->android device m ...

  10. avalon学习笔记

    背景: 刚刚到一家新的公司,我新接手的项目采用的mvvm框架是avalon,当然我以前没有学过angular,但是用过react,所以对于这类框架应该不算陌生.但毕竟是一个新的框架,所以还是先学起来, ...