1.04 字符编码

编码历史

ASC 7位 > 128

ASCII 8位 > 256

DBCS

UNICODE

  • LINUX : UTF-8
  • WINDOWS : UTF-16

宽字节字符

wchar_t 每个字符占2个字节, unsigned short 类型,

定义时,前面要加L (L”Hello”), 采用UNICODE编码

wprint(L”%s\n”,xxx)

TCHAR

根据是否定义宽字节 自适应char

打印unicode

wprintf 对unicode支持不完善, windows使用 WriteConsile

  1. HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
  2. WriteConsole(
  3. hOut;// 标准输出句柄, 显示器
  4. pszText,
  5. wsclen(pszText),
  6. NULL,
  7. NULL);
  8. // 3个标准句柄
  9. STD_INTPUT_HANDLE
  10. STD_OUTPUT_HANDLE
  11. STD_ERROR_HANDLE

多字节字符集

如果设置为unicode字符集

相当于编译时添加#define UNICODE

设置为多字节字符集 => 不自动添加#define UNICODE

原因: 系统调用函数 很多使用TCHAR, 如果用UNICODE字符集, 那么书写的参数都得加L( L”HELLO” ) 麻烦