/// <summary>
/// 返回固定长度字符串,一个中文的长度为2,
/// </summary>
/// <param name="p_SrcString">原串</param>
/// <param name="p_Length">长度</param>
/// <param name="p_TailString">返回字符串的结尾,如"......"</param>
/// <returns></returns>
public static string GetSubString(string p_SrcString, int p_Length, string p_TailString)
{
string myResult = p_SrcString;
-
if (p_Length >= 0)
{
byte[] bsSrcString = System.Text.Encoding.GetEncoding("GB2312").GetBytes(p_SrcString);if (bsSrcString.Length >= p_Length)
{
int nRealLength = p_Length;
int[] anResultFlag = new int[p_Length];
byte[] bsResult = null;int nFlag = 0;
for (int i = 0; i < p_Length; i++ )
{if (bsSrcString[i] > 127)
{
nFlag++ ;
if (nFlag == 3)
{
nFlag = 1;
}
}
else
{
nFlag = 0;
}anResultFlag[i] = nFlag;
}if ((bsSrcString[p_Length - 1] > 127) && (anResultFlag[p_Length - 1] == 1))
{
nRealLength = p_Length - 1; //去掉半字中文
}bsResult = new byte[nRealLength];
Array.Copy(bsSrcString, bsResult, nRealLength);
myResult = System.Text.Encoding.GetEncoding("GB2312").GetString(bsResult);
}
myResult = myResult p_TailString;
}return myResult;
}