UNICODE与MBCS等字符区别

发布于:2021-05-15 10:01:10

字符类型有三种编码格式:

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*)

相关推荐

最新更新

猜你喜欢