Windows字符集
在没有计算机没有附带汉语的时候,老外的1个字符对应一个字节,叫多字节;
当计算机注加汉语之后,汉字一个字符对应多个字节,叫宽字节(英文名叫Unicode),如utf8类型的一个字符对应3个字节,GBK类型的一个字符对应2个字节,我们Visual Studio默认遵循的字符集是Unicode类型。
如果想让多字节转为宽字节,即在前面加大写L,如:
MessageBox(“aaa”) -> MessageBox(L“aaa”);
这样就可以成功使用MessageBox这个函数了,该函数大家应该都不陌生,就是MFC中的信息显示函数。
TEXT()函数
TEXT()函数就是 不管你用的什么编码格式,我都给你转成计算机目前用的编码格式,即自适应编码转换。 另外TCHER 类型的字符或字符串也有自适应编码的能力。
下面介绍一些常用的字符转换代码:
统计多字节字符串的长度:
int num = 0;
Char * p = "aaaa";
num = strlen(p);
统计宽字节字符串的长度:
wchar_t * p2 = L"bbbb";
num = wcslen(p2);
char * (c+)与 CString(MFC字符串)之间的转换:
char * p3 = "aaa";
CString str = CString(p3);//有参构造,char * 转 CString
char * p3 = "aaa";
CString str = CString(p3);
CStringA tmp;//临时的CStringA 变量
tmp = str;
Char * pp = tmp.GetBuffer;//CString转char *