mfc Unicode转 ASNI ,WCHAR 转 CHAR

知识点:
   宽字符转多字节字符 
   多字节字符转宽字符


什么是ANSI,什么又是UNICODE呢?其实这是两种不同的编码方式标准,ANSI中的字符采用8bit,而UNICODE中的字符采用16bit
在VC++中 ANSI标准 体现为 CHAR类型 而Unicode标准体现为WCHAR类型


一、宽字符转多字节字符
 Unicode转 ASNI  
 WCHAR 转 CHAR
方法1:
#include <atlconv.h>
USES_CONVERSION ;;//
W2A(WCHAR);//返回一个 ASNI标准的多字节字符

 方法2:  WideCharToMultiByte 
{
          WCHAR wText[20] = {L"宽字符转换实例!OK!"}; // 
          DWORD dwNum;
           CHAR psText[256];
          dwNum=sizeof(wText)/2;//获取字串长度
         // dwNum = WideCharToMultiByte(CP_OEMCP,NULL,wText,-1,NULL,0,NULL,FALSE); ////获取字串长度
          WideCharToMultiByte (CP_OEMCP,NULL,wText,-1,psText,dwNum,NULL,FALSE);
          UpdateData(false);//为了方便下断测试
} 

二、多字节字符转宽字符 
 CHAR 转WCHAR
 ASNI 转 Unicode

 方法1:
 USES_CONVERSION ;;//
 A2W(CHAR);//返回WCHAR类型
 


方法2:MultiByteToWideChar 
{
        CHAR sText[]="abc";
        WCHAR pwText[256];
        int dwNum=sizeof(sText);
        //dwNum = MultiByteToWideChar (CP_ACP, 0, sText, -1, NULL, 0); //获取字串长度
        MultiByteToWideChar (CP_ACP, 0, sText, -1, pwText, dwNum);
        UpdateData(false);//为了方便下断测试

    }
原文地址:https://www.cnblogs.com/whzym111/p/6201687.html