By WJB date 2018/08/03
本质上,Unicode(http://unicode.org/)使用16位数表示字符。Unicode字符集很大,它可以支持世界上很多国家的语言文字或其他符号。在 C++中,我们用宽字符类型 wchar_t 来表示 Unicode 字符。在 32 和 64 位Windows 中,wchar_t 都是 16 位数。当使用宽字符时,我们必须在字符串文本前面加上一个大写字母“L”。例如:
const wchar_t* wcstrPtr = L"Hello, World!";
“L”告诉编译器把这一字符串文本看作Unicode字符串(即,以wchar_t代替char)。 在获取一个字符串长度时,我们必须用 wcslen 代替 strlen;在复制一个字符串时,我们必须用 wcscpy 代替 strcpy;在对两个字符串进行比较时,我们必须用 wcscmp 代替strcmp。这些函数的Unicode版本使用的都是 wchar_t指针,而不是char 指针。C++标准库也为它的string类提供了一个Unicode版本:std::wstring。另外,在Windows 头文件中还定义了:
typedef wchar_t WCHAR; // wc, 16-bit UNICODE character