UNICOD、MBCSコードの文字列の違い

3542 ワード

1:SBCS(single byte character set)シングルバイト文字セット.この符号化フォーマットでは、すべての文字が1バイトで表されます.ASCIIコードは1バイト文字です.1バイトの終了を「0」で表します.2:Unicodeは、すべての文字が2バイト符号化された符号化モードである.Unicode文字は、ワイド文字とも呼ばれることがある.3:MBCS(multi-byte characters set)マルチバイト文字セット.WindowsではMBCSには、シングルバイト文字(single byte characters)とダブルバイト文字(double byte characters)の2つの文字タイプが含まれています.Windowsで使用されるマルチバイト文字のほとんどは2バイト長であるため、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