大白话说Windows字符集-宽字节(Unicode)及相应c++中的TEXT函数和TCHER类型

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 * 

猜你喜欢

转载自blog.csdn.net/qq_42308217/article/details/108201931
今日推荐