知识点:
宽字符转多字节字符
多字节字符转宽字符
什么是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);//为了方便下断测试
}