字符串在 UNICODE、MBCS编码下面的区别

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代替。

 

MBCS 编码

 1     CString strName1 = _T("你好");

 2     int nLen = strName1.GetLength();    //    4  

 3     

 4     _bstr_t bstrName1 = (_bstr_t)strName1;

 5     nLen = bstrName1.length();            //    2

 6 

 7     CString strName2 = _T("abcd");

 8     nLen = strName2.GetLength();        //    4

 9     

10     _bstr_t bstrName2 = (_bstr_t)strName2;

11     nLen = bstrName2.length();            //    4

 

Unicode 编码

 1     CString strName1 = _T("你好");

 2     int nLen = strName1.GetLength();    //    2

 3     

 4     _bstr_t bstrName1 = (_bstr_t)strName1;

 5     nLen = bstrName1.length();            //    2

 6 

 7     CString strName2 = _T("abcd");

 8     nLen = strName2.GetLength();        //    4

 9     

10     _bstr_t bstrName2 = (_bstr_t)strName2;

11     nLen = bstrName2.length();            //    4

 

你可能感兴趣的:(unicode)