ANSI,MBCS,UNICODE


编程的书中经常介绍UNICODE,还有字符串函数中经常见各种格式,下面以以"abc我你他"为例分别介绍

测试源码:

TCHAR* p = _T("abc我你他"); 
std::cout << _tcsclen(p);

我们写的代码应该是这个样子的,即既符合ANSI又符合UNICODE的代码,使用_T宏和_ts函数集。

一、ANSI编码:普通英文字母一个,汉字占两个字节。"abc我你他"占用9个字节。
 
 编译选项里没有相关选项
 输出9
 此时,_tcsclen为strlen,结果为字节数。

 使用多字符函数,即MultiByte函数,编译选项里设置_MBCS, 该选项VC默认生成的工程里有(Project->Setting->C++->Preprocessor Setting)。
 此时_tcsclen 为_mbslen。输出结果为6,实际占用9个字节。

二、UNICODE编码,所谓宽字符,英文字符和汉字都占用2个字节,编译选项里设置_UNICODE,UNICODE
 源码相当于wchar_t* p = L"abc我你他";
  std::cout << wcslen(p);
 结果为6,实际占用12个字节。;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值