截取字符串长度问题。
遇到一个问题,英文长度跟中文长度差了一半。效果很不好。怎么解决啊。
<%#function.GetLeft(Eval("typename").ToString(), 12)%>
public static string GetLeft(string content, int count)
{
if (content.Length > count)
{
content = content.Substring(0, count);
}
else
{
content = content.ToString();
}
return content;
}
[解决办法]
{
byte[] bytes = encoding.GetBytes(str.Substring(i, 1));
if (bytes.Length == 2)//不是英文
j += 2;
else
j++;
if (j <= len)
k += 1;
if (j >= len)
return str.Substring(0, k) + "...";
}
return str;
}
经测试,可以用。