MFC:在Unicode编码下CStringchar *转换

Posted tianxiafeiyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC:在Unicode编码下CStringchar *转换相关的知识,希望对你有一定的参考价值。

一、CString转char *

CString pb=_T("abc");
int len = WideCharToMultiByte(CP_UTF8, 0, pb, pb.GetLength(), NULL, 0, NULL, NULL);
    char* pa = new char[len + 1];
    len = WideCharToMultiByte(CP_UTF8, 0, pb, pb.GetLength(), pa, len + 1, NULL, NULL);
    pa[len] = 0;
//pa就是最后转换成的char *

二、char * 转CString

CString st=_T("123");
 int nLength = st.GetLength();
 int nBytes = WideCharToMultiByte(CP_ACP,0,st,nLength,NULL,0,NULL,NULL);
 char* path1 = new char[ nBytes + 1];
 memset(path1,0,nLength + 1);
 WideCharToMultiByte(CP_OEMCP, 0, st, nLength, path1, nBytes, NULL, NULL); 
 path1[nBytes] = 0; 

 

以上是关于MFC:在Unicode编码下CStringchar *转换的主要内容,如果未能解决你的问题,请参考以下文章

在 MFC C++ 中将 char 数组转换为 UNICODE

Visual C++/MFC:让日文字符在没有 UNICODE 的情况下工作

是在定义 UNICODE 时对 CString 使用 UTF-16 的 MFC 应用程序

MFC 解决中文乱码问题

有没有办法在不使用 /UNICODE 编译的情况下使用 MFC 的 CEdit 函数“ShowBalloonTip”?

UNICODE环境下读写txt文件操作