一个汉字当成两个字节编码,英文一个字母当成一个字节编码,截取字符串的长度.例如:字符串"微软技术c#讲座",
string sourcestr = "微软技术c#讲座";
string newstr = SubString(sourcestr,9);
//输出newstr = "微软技术c"
public static string SubString(string aOrgStr,int aLength)
{
int intLen = aOrgStr.Length ;
int start = 0 ;
int end = intLen ;
int single = 0;
char[] chars = aOrgStr.ToCharArray();
for (int i=0; i<chars.Length ;i++)
{
if (System.Convert.ToInt32(chars[i])>255)
{
//如果是汉字,那么就增加两个字节长度
start += 2;
}
else
{
//如果是英文或数字,那么就增加一个字节长度
start += 1;
single ++ ;
}
if (start >= aLength)
{
if ( end % 2 == 0)
{
if ( single % 2 == 0 )
{
end = i+1 ;
}
else
{
end = i ;
}
}
else
{
end = i+1 ;
}
break ;
}
}
string temp = aOrgStr.Substring(0, end);
return temp ;
}