多字节和宽字节
- 多字节:一个字符对应一个字节(英语国家最开始使用)
- 宽字节:一个字符对应多个字节(中文、韩文等其它语言引入后使用)
Unicode 就是宽字节,unicode 有很多种比如常见的 UTF-8 (一个字符对应 3 个字节) GBK(一个字符对应 2 个字节)
多字节转宽字节
MFC 工程中会设定当前工程使用什么字节,如果要使用中文要选择宽字节(unicode)。
多字节如何转宽字节?
第一种方法:直接在字符串前加 L 即可,如:
MessageBox(L"aaaa");
第二种方法:如果工程默认的字符集设置成了宽字节,那在任何字符串前加 TEXT 就会将字符串转成宽字节。其实 TEXT 就是将字符串转成工程默认的字符集。如果默认的字符集是多字节,就会将字符串转成多字节。
TEXT 有自适应编码转换能力,TCHAR 也有自适应编码转换能力。
MessageBox(TEXT(“aaaa”));
参考: