字符串在 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

 

posted @ 2015-02-05 21:04  王家^0^小轩  阅读(606)  评论(0编辑  收藏  举报