标签:ar os sp for on art bs ef tt
public static string CutByteString(string str,int len)
{
string result=string.Empty;// 最终返回的结果
if(string.IsNullOrEmpty(str)) { return result; }
int byteLen=System.Text.Encoding.Default.GetByteCount(str);// 单字节字符长度
int charLen=str.Length;// 把字符平等对待时的字符串长度
int byteCount=0;// 记录读取进度
int pos=0;// 记录截取位置
if(byteLen>len)
{
for(int i=0;i<charLen;i++)
{
if(Convert.ToInt32(str.ToCharArray()[i])>255)// 按中文字符计算加2
{ byteCount+=2; }
else// 按英文字符计算加1
{ byteCount+=1; }
if(byteCount>len)// 超出时只记下上一个有效位置
{
pos=i;
break;
}
else if(byteCount==len)// 记下当前位置
{
pos=i+1;
break;
}
}
if(pos>=0)
{ result=str.Substring(0,pos); }
}
else
{ result=str; }
return result;
}
public static string CutByteString(string str,int startIndex,int len)
{MessageBox.Show(s); //输出 “一二3”
}
标签:ar os sp for on art bs ef tt
原文地址:http://blog.csdn.net/xtfnpgy/article/details/41621631