utf8和gbk互转实现
来源:互联网 发布:游戏配乐知乎 编辑:程序博客网 时间:2024/05/16 13:03
注意:
我这里没有把整个类的代码贴出来,如果想让下面代码正常请添加
如下头文件.
#include<string>
#include<winnls.h>
头文件添加这两个函数声明
//转码相关函数static std::string GBKToUTF8(const char* strGBK);static std::string UTF8ToGBK(const char* strUTF8);
cpp文件添加转码函数实现
std::string CUrlHttp::GBKToUTF8(const char* strGBK) { int len = MultiByteToWideChar(CP_ACP, 0, strGBK, -1, NULL, 0); wchar_t* wstr = new wchar_t[len+1]; memset(wstr, 0, len+1); MultiByteToWideChar(CP_ACP, 0, strGBK, -1, wstr, len); len = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, NULL, 0, NULL, NULL); char* str = new char[len+1]; memset(str, 0, len+1); WideCharToMultiByte(CP_UTF8, 0, wstr, -1, str, len, NULL, NULL); std::string strTemp = str; if(wstr) delete[] wstr; if(str) delete[] str; return strTemp; } std::string CUrlHttp::UTF8ToGBK(const char* strUTF8) { int len = MultiByteToWideChar(CP_UTF8, 0, strUTF8, -1, NULL, 0); wchar_t* wszGBK = new wchar_t[len+1]; memset(wszGBK, 0, len*2+2); MultiByteToWideChar(CP_UTF8, 0, strUTF8, -1, wszGBK, len); len = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL); char* szGBK = new char[len+1]; memset(szGBK, 0, len+1); WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, szGBK, len, NULL, NULL); std::string strTemp(szGBK); if(wszGBK) delete[] wszGBK; if(szGBK) delete[] szGBK; return strTemp; }
阅读全文
0 0
- utf8和gbk互转实现
- c中实现utf8和gbk的互转
- CentOS下UTF8和GBK的互转
- GBK转UTF8 C++实现代码
- GBK和UTF8之间转码
- UTF8和GBK
- GBK 和 UTF8 转码
- linux gbk utf8 文本互转
- win32中GBK、UTF8的互转
- GBK与UTF8编码互转
- GBK转UTF8
- GBK 转 UTF8
- GBK源码转UTF8
- perl utf8 转gbk
- gbk转utf8
- GBK转UTF8
- java gbk转utf8
- utf8转GBK
- 485的A、B端电压是由什么决定的?
- GO语言的TCP小程序
- nsq源码分析(2):nsqlookup之启动和停止
- 第三方app开启自己app需要的操作
- CSS之元素视图属性
- utf8和gbk互转实现
- 好的编程状态
- Xcode8.2 真机测试 ,添加iOS10.3的idk到Xcode8.2中
- PHP学习笔记——超全局数组(预定义变量)
- JavaBean,EL表达式和JSTL的介绍
- Redis数据库--快速入门手册
- 守护进程理解与创建
- 怎么查看电脑主板是否支持UEFI+GPT启动模式
- Win10上的git、github部署及基本使用方法