取字符中的长度,考虑单字节和双字节情况
// 取字符中的长度,考虑单字节和双字节情况
/// <summary>
/// 计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度
///
/// </summary>
/// <param name="Text">需计算长度的字符串</param>
/// <returns>int</returns>
public static string getLength(string Text, int Lenght)
{
int len = 0;
System.Text.Encoding enc = System.Text.Encoding.GetEncoding("Gb2312");
byte[] bytes = enc.GetBytes(Text);
for (int i = 0; i < Text.Length; i++)
{
byte[] byte_len = enc.GetBytes(Text.Substring(i, 1));
if (byte_len.Length > 1)
len += 2; //如果长度大于1,是中文,占两个字节,+2
else
len += 1; //如果长度等于1,是英文,占一个字节,+1
}
Lenght = Lenght * 2 > len ? len : Lenght * 2;
return enc.GetString(bytes, 0, Lenght-1);
}