封装ANSI,UNICODE,UTF8互相转换类
来源:互联网 发布:淘宝网购物男装外套 编辑:程序博客网 时间:2024/05/01 18:14
Ansi22Utf8.h#pragma once#include <string>#include <vector>using namespace std;class Ansi22Utf8{public:Ansi22Utf8(void);~Ansi22Utf8(void);private:wchar_t* AnsiToUnicode(const char* buf);char* UnicodeToUtf8(const wchar_t* buf);wchar_t * UTF8ToUnicode( const char* str );char * UnicodeToANSI( const wchar_t *str );public:char* UTF8ToANSI(const char* buf);char* AnsiToUtf8(const char* buf);};Ansi22Utf8.cpp#include "StdAfx.h"#include "Ansi22Utf8.h"#include <Windows.h>Ansi22Utf8::Ansi22Utf8(void){}Ansi22Utf8::~Ansi22Utf8(void){}//UTF8转成Unicodewchar_t * Ansi22Utf8::UTF8ToUnicode( const char* str ){ int textlen = 0; wchar_t * result; textlen = MultiByteToWideChar( CP_UTF8, 0, str,-1, NULL,0 ); result = (wchar_t *)malloc((textlen+1)*sizeof(wchar_t)); memset(result,0,(textlen+1)*sizeof(wchar_t)); MultiByteToWideChar(CP_UTF8, 0,str,-1,(LPWSTR)result,textlen ); return result; }//Unicode转成ANSIchar * Ansi22Utf8::UnicodeToANSI( const wchar_t *str ){ char * result; int textlen = 0; // wide char to multi char textlen = WideCharToMultiByte( CP_ACP, 0, str, -1, NULL, 0, NULL, NULL ); result =(char *)malloc((textlen+1)*sizeof(char)); memset( result, 0, sizeof(char) * ( textlen + 1 ) ); WideCharToMultiByte( CP_ACP, 0, str, -1, result, textlen, NULL, NULL ); return result;}char* Ansi22Utf8::UTF8ToANSI(const char* buf){return UnicodeToANSI(UTF8ToUnicode(buf));}//ANSI转成Unicodewchar_t* Ansi22Utf8::AnsiToUnicode(const char* buf){int textlen = 0;wchar_t* result;textlen = MultiByteToWideChar(CP_ACP,0,buf,-1,NULL,0);result = (wchar_t *)malloc((textlen+1)*sizeof(wchar_t));memset(result,0,(textlen+1)*sizeof(wchar_t));MultiByteToWideChar(CP_ACP, 0,buf,-1,(LPWSTR)result,textlen );return result; }//Unicode转成UTF8char* Ansi22Utf8::UnicodeToUtf8(const wchar_t* buf){char* result;int textlen = 0;textlen = WideCharToMultiByte( CP_UTF8, 0, buf, -1, NULL, 0, NULL, NULL );result =(char *)malloc((textlen+1)*sizeof(char));memset(result, 0, sizeof(char) * ( textlen + 1 ) );WideCharToMultiByte( CP_UTF8, 0, buf, -1, result, textlen, NULL, NULL );return result; }char* Ansi22Utf8::AnsiToUtf8(const char* szAnsi){/* if (szAnsi == NULL) return NULL ; _bstr_t bstrTmp (szAnsi) ; int nLen = ::WideCharToMultiByte (CP_UTF8, 0, (LPCWSTR)bstrTmp, -1, NULL, 0, NULL, NULL) ; char * pUTF8 = new char[nLen+1] ; ZeroMemory (pUTF8, nLen + 1) ; ::WideCharToMultiByte (CP_UTF8, 0, (LPCWSTR)bstrTmp, -1, pUTF8, nLen, NULL, NULL) ; return pUTF8 ;*/return UnicodeToUtf8(AnsiToUnicode(szAnsi));}
0 0
- 封装ANSI,UNICODE,UTF8互相转换类
- ANSI Unicode,UTF8 转换
- ANSI - Unicode - UTF8 转换
- utf8,unicode ,ansi转换
- unicode,utf8,ansi转换
- ANSI、UTF8、UNICODE 相互转换
- ANSI - Unicode UTF16 - Unicode UTF8 转换
- 支持UNICODE/UTF8/ANSI之间的转换的类
- 支持UNICODE/UTF8/ANSI之间的转换的类
- ANSI, UNICODE与UTF8相互转换模板类
- 支持UNICODE/UTF8/ANSI之间的转换的类
- 字符转换:ANSI,UNICODE互相转换
- ANSI、UNICODE和UTF8之间字符转换
- 字符串处理 - ANSI - Unicode - UTF8 转换
- 字符串处理 - ANSI - Unicode - UTF8 转换
- ansi unicode utf8之间的转换
- win32 字符串 utf8 unicode ansi相互转换
- 字符串处理 - ANSI - Unicode - UTF8 转换
- 落花
- 英特尔大败局
- TortoiseGit Resolving deltas: 100%问题的解决
- 对话何小鹏:移动互联网须一针捅破天
- 杨幂刘诗诗吴奇隆唐嫣 明星戴眼镜卖萌PK文艺范
- 封装ANSI,UNICODE,UTF8互相转换类
- Android Listview中使用两种布局
- AWS 经典的3层web app部署架构图
- ASP.NET的Session 详解
- Git 常用命令整理
- c++ ANSI、UNICODE、UTF8互转
- C#代码注释规范及文档生成
- fedora 下搭建DNS服务器
- C++中Ansi、Unicode、UTF8字符串之间的转换和写入文本文件