/**//// <summary> /// 按指定汉字的宽度截取字符串 /// </summary> /// <param name="sourceStr">源字符串</param> /// <param name="length">要截取汉字的个数</param> /// <param name="isRounLastChar">当源串中存在半角和全角交替是,当结尾存在半个汉字时是否保留最后一位汉字</param> /// <returns>截取后的字符串</returns> /// <summary> /// 超过指定汉字长度截取字符串并加上... /// </summary> /// <param name="str">要截取的字符串</param> /// <param name="length">截取汉字长度</param> /// <param name="isRounLastChar">当结尾存在半个汉字时是否保留</param> /// <returns>截取后的结果</returns> public string CutString4(string str, int length, bool isRounLastChar) ...{ int n = length * 2; string dStr = str; string tempStr = string.Empty; System.Text.Encoding gbEncoding = System.Text.Encoding.GetEncoding("gb2312"); if (n < gbEncoding.GetBytes(dStr).Length) ...{ int i = 0; while (n != 0) ...{ if (n == 1) ...{ if (isRounLastChar) ...{ tempStr += dStr[i]; } break; } if (isCn(dStr[i])) ...{ tempStr += dStr[i]; n = n - 2; } else ...{ tempStr += dStr[i]; n--; } i++; } tempStr=tempStr+"..."; } else ...{ tempStr=dStr; } tempStr=replace(tempString,"/"); return(tempStr); } /**//// <summary> /// 是否为汉字 /// </summary> /// <param name="c">字符</param> /// <returns>true/false</returns> public bool isCn(char c) ...{ byte[] bs = System.Text.Encoding.UTF8.GetBytes(c.ToString()); if (bs.Length == 3) ...{ return true; } else ...{ return false; } }