有的时候行的宽度有限,所以显示数据的时候,如果字符串太长就要截取一个固定的长度,然后在后面加上"..." .  现在的问题是,如果对所有的字符串都截取10个长度,string s = str.SubString(0,10);
如果str="一二三四五六七八九零一",截取处理后就显示为"一二三四五六七八九零...".
但是如果str="abcdefghijklmn",截取处理后显示为      "abcdefghij..."英文字母的宽度明显要比全是汉字的小很多,我的意思同样的宽度里,如果全是英文的话可以显示的更多。怎么才能做到,如果全是英文就显示20个 字符,如果全是汉字就显示10个字,如果是混合?

解决方案 »

  1.   

    转为char[] 
    if(char[i]==中文)
    {
     
    }
    else
    {
      
    }
      

  2.   

    楼主如果字符串不是很多(达几百几千的),可以考虑用CSS来做。
    如:
    <div style="width:230px;overflow:hidden; white-space:nowrap;text-overflow:ellipsis;" title="<%#Eval("Address")%>"><%#Eval("Address")%></div>多余的部份会以...来结束的
      

  3.   

        public static string CutString(string inputString, int len)
        {
            ASCIIEncoding ascii = new ASCIIEncoding();
            int tempLen = 0;
            string tempString = "";
            byte[] s = ascii.GetBytes(inputString);
            for (int i = 0; i < s.Length; i++)
            {
                if ((int)s[i] == 63)
                {
                    tempLen += 2;
                }
                else
                {
                    tempLen += 1;
                }            try
                {
                    tempString += inputString.Substring(i, 1);
                }
                catch
                {
                    break;
                }            if (tempLen > len)
                    break;
            }
            //   //如果截过则加上半个省略号 
            //   byte[] mybyte=System.Text.Encoding.Default.GetBytes(inputString); 
            //   if(mybyte.Length>len) 
            //    tempString+="…"; 
            return tempString;
        }
      

  4.   


                string s = "测试这是中文";
                string a = "test";
                int h = Encoding.Default.GetByteCount(s);
                int y = Encoding.Default.GetByteCount(a);
      

  5.   

    先将汉字转换为char型的
    汉字是占两字字符的~~
    .ToCharArray() 
    再使用str.SubString(0,10); 
      

  6.   

    可以根据固定的像素截取的,以前用JQuery做过
      

  7.   

    http://blog.csdn.net/xianfajushi/archive/2009/11/27/4734699.aspx目前我自己还觉得满意的,不过后来又改进了些,等又空重新发布一下