字符类型有三种编码格式:
1:SBCS (single byte character set)单字节字符集。在这种编码格式下,所有字符都用一个字节表示。ASCII码就是单字节字符。用“0”来表示一个字节的结束。
2 :Unicode 是一种所有的字符都使用两个字节编码的编码模式。Unicode 字符有时也被称作 宽字符。
3:MBCS (multi-byte characters set)多字节字符集。在windows里面 MBCS 包含两种字符类型:单字节字符(single byte characters)和双字节字符(double byte characters)。 由于windows里使用的多字节字符绝大部分是两个字节长,MBCS常被DBCS代替。
Unicode 与 MBCS 的区别,从上说明可以看出:
MBCS 字符可以使用不同长度的字节编码。单字节字符包含拉丁文字母表及ASCII码和DOS操作系统定义的图像字符。双字节字符被用来表示东亚及中东的语言。
Unicode 被用来COM及Windows NT操作系统内部。
char 是单字节字符。双字节字符也可以用char类型来进行操作。Unicode 字符用wchar_t来表示。Unicode 字符和字符串常量用前缀 L 来表示。
例如:wchar_t wch = L"1";wchar_t * wsz = L"Hello";
同一个汉字的Unicode码和GB(K)码是不一样的
_T是windows的宏,适用于UNICODE 和MBCS环境,在定义了Unicode 的情况下就是双字节,未定义就是单字节,
L是C语言的,明确标识是双字节。适用于UNICODE环境
字符类型 含义
WCHAR Unicode character(wchar_t)
TCHAR MBCS or Unicode character
LPSTR string of char (char*)
LPCSTR const string of char(const char*)
LPWSTR string of WCHAR(WCHAR*)
LPCWSTR constant string of WCHAR(const WCHAR*)
LPTSTR string of TCHAR(TCHAR*)
LPCTSTR constant string of TCHAR(const TCHAR*)