在多字节(ANSI)环境里面
int iCount = 0; CString strMyString;
strMyString = _T("中文字符"); iCount = strMyString.GetLength(); //iCount = 8 strMyString = _T("English char"); iCount = strMyString.GetLength();//iCount = 12 strMyString = _T("混合char"); iCount = strMyString.GetLength();//iCount = 8
在这里,GetLength把中文字符当成两个字符来对待。这并不是很符合我们的逻辑。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
在Unicode环境里面
int iCount = 0; CString strMyString;
strMyString = _T("中文字符"); iCount = strMyString.GetLength(); //iCount = 4 strMyString = _T("English char"); iCount = strMyString.GetLength();//iCount = 12 strMyString = _T("混合char"); iCount = strMyString.GetLength();//iCount = 6
在这里,GetLength按我们正常的逻辑把中文字符也看成是一个字符来对待。具有国际通用性
在VS2008测试通过