private ArrayList GetSeparateSubString(string mOrigianlString, int subStringCharNumber)
{
ArrayList resultList = new ArrayList();
string tempStr = mOrigianlString;
int charNumber = subStringCharNumber;
int totalCount = 0;
string mSubStr = "";
for (int i = 0; i < tempStr.Length; i++)
{
string mChar = tempStr.Substring(i, 1);
int byteCount = Encoding.Default.GetByteCount(mChar);
//关键点判断字符所占的字节数
if (byteCount == 1)
{
totalCount++;
mSubStr += mChar;
if (totalCount == charNumber || i == tempStr.Length - 1)
{
resultList.Add(mSubStr);
totalCount = 0;
mSubStr = "";
}
} else if (byteCount > 1)
{
totalCount += 2;
if (totalCount > charNumber)
{
resultList.Add(mSubStr);
if (i == tempStr.Length - 1)
{
mSubStr = mChar;
resultList.Add(mSubStr);
} else {
totalCount = 2;
mSubStr = mChar;
}
} else if (totalCount == charNumber)
{
mSubStr += mChar;
resultList.Add(mSubStr);
totalCount = 0;
mSubStr = "";
} else if (i == tempStr.Length - 1) {
mSubStr += mChar;
resultList.Add(mSubStr);
} else {
mSubStr += mChar;
}
}
} return resultList;
}