使用如下函数便好,其实inputString是源串,len是要截取的长度(以半角计算)。
原理很简单,就是逐个遍历源串中的字符,如果该字符是全角,则认为它占两个长度,如果是半角,就认为它占一个长度。
public static string CutString(string inputString, int len)
{
string tempString = string.Empty;
for (int i = 0, tempIndex = 0; i < inputString.Length; ++i, ++tempIndex)
{
if (System.Text.Encoding.UTF8.GetBytes(new char[] { inputString[i] }).Length > 1)
{
++tempIndex;
}
if (tempIndex >= len)
{
tempString += "...";
break;
}
tempString += inputString[i];
}
return tempString;
}
原文地址: 点击打开链接