cstring 转 utf8
来源:互联网 发布:酱紫是什么网络用语 编辑:程序博客网 时间:2024/06/09 20:40
如果原字符是Unicode编码,使用WideCharToMultiBytes,使用UTF8代码页如果是ansi编码的则先使用MultiBytesToWideChar转换为Unicode编码,再按上述操作完成
//把utf8转成unicode,再转成cstring
void ConvertUTF8ToANSI(char* strUTF8,CString &strANSI) //
{
int nLen = ::MultiByteToWideChar(CP_UTF8,MB_ERR_INVALID_CHARS,(LPCTSTR)strUTF8,-1,NULL,0); //返回需要的unicode长度
WCHAR * wszANSI = new WCHAR[nLen+1];
memset(wszANSI, 0, nLen * 2 + 2);
nLen = MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUTF8, -1, wszANSI, nLen); //把utf8转成unicode
nLen = WideCharToMultiByte(CP_ACP, 0, wszANSI, -1, NULL, 0, NULL, NULL); //得到要的ansi长度
char *szANSI=new char[nLen + 1];
memset(szANSI, 0, nLen + 1);
WideCharToMultiByte (CP_ACP, 0, wszANSI, -1, szANSI, nLen, NULL,NULL); //把unicode转成ansi
strANSI = szANSI;
delete wszANSI;
delete szANSI;
}
void ConvertANSIToUTF8(CString &strANSI)
{
int nLen = ::MultiByteToWideChar(CP_ACP,MB_ERR_INVALID_CHARS,(LPCTSTR)strANSI,-1,NULL,0);
unsigned short * wszUTF_8 = new unsigned short[nLen+1];
memset(wszUTF_8, 0, nLen * 2 + 2);
nLen = MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strANSI, -1, wszUTF_8, nLen);
nLen = WideCharToMultiByte(CP_UTF8, 0, wszUTF_8, -1, NULL, 0, NULL, NULL);
char *szUTF8=new char[nLen + 1];
memset(szUTF8, 0, nLen + 1);
WideCharToMultiByte (CP_UTF8, 0, wszUTF_8, -1, szUTF8, nLen, NULL,NULL);
strANSI = szUTF8;
delete wszUTF_8;
delete szUTF8;
}
- cstring 转 utf8
- cstring 转 utf8
- CString UTF8
- CString UTF8
- UTF8 CString 互转问题和代码
- UTF8 CString 互转问题和代码
- CString UTF8 转换
- MFC Cstring unicode 转换为utf8
- CString由Unicode转为utf8格式
- VC,CString,UTF8与GBK互转
- MFC,unicode下CString类型及UTF8问题
- ios9 字符串转UTF8 ,UTF8转字符串
- utf8转gb
- Unicode转UTF8
- utf8 转 gb2312
- gb2312转utf8
- utf8 转 unicode
- UTF8转unicode
- nginx使用ssl模块配置HTTPS支持
- InfoPath 窗体与其他 Microsoft 解决方案之间的对比
- Linux下常用压缩格式的压缩与解压方法
- Windows计划任务框架WinServiceTask
- java并发【内容多的那叫一个苦逼啊】
- cstring 转 utf8
- vc++实现U盘介质加密解密保障存储安全
- Javascript URL 编码区别及转义字符处理
- 进制转换
- linux socket UDP编程发送广播
- iPhone&iPad越狱后的操作
- JS 对浏览器cookie的使用
- vc++ mfc 里保存缩放的bmp图片 不失真
- c# List find()方法返回值的问题(返回结果为对象的指针)