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 应用程序