windows编程 第3课 编码

编码历史背景

ASC 7位 128字符 (那个年代内存还是非常昂贵的)

ASCII 8位 256字符 前128和ASC是一样的

DBCS 按照单双字节编码

UNICODE 几乎囊括所有国家的字符(包括多种编码方式)

UTF-16 全部采用16位, 英文多余的地方补0

重点说一下DBCSUNICODE

        

宽字节字符

wchar_t 每个字符占两个字节

char 每个字节占一个

wchar_t 实际上是unsigned short类型,定义时需要增加L,通知编译器按照双字节编译字符串,采用UNICODE编码

需要使用支持wchar_t函数操作宽字节字符串,例如:

wchar_t* pwszText =L"Hello wchar";

wprintf(L"%s\n",  pwszText);

TCHAR 数据类型

通过一段定义即可了解 T_CHAR

#ifdef UNICODE
    typedef wchar_t TCHAR;
    #define _TEXT(quote) L##quote
#else
    typedef char TCHAR
    #define _TEXT(quote) quote
#endif

系统常用函数得参数类型:

LPSTR === char*                               LPCSTR === const char*

LPWSTR === wchar_t*                               LPCWSTR === const wchar_t*

LPTSTR === TCHAR*                               LPCSTR === const TCHAR*

如果vs选择字符集为UNICODE,则会定义一个UNICODE宏,则很多的参数字符串前都将需要添加L,所以vs要选择字符集为多字节字符集,不适用默认的UNICODE

 

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值