截取部分新闻内容出现半个字符,就会自动带个?号,这个怎么解决???

解决方案 »

  1.   

    public string CutStr(string sInString,int iCutLength)
      {
       if(sInString==null || sInString.Length==0 || iCutLength<=0)
        return "";
       int iCount=System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(sInString);
       if(iCount>iCutLength)
       {
        int iLength=0;
        for(int i=0;i<sInString.Length;i++)
        {
         int iCharLength=System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(new char[]{sInString[i]});
         iLength += iCharLength;
         if(iLength==iCutLength)
         {
          sInString=sInString.Substring(0,i+1);
          break;
         }
         else if(iLength>iCutLength)
         {
          sInString=sInString.Substring(0,i);
          break;
         }
        }
       }
       return sInString;
      }
      

  2.   

    string aa = "小李a飞dd溅";
    string aa1 = aa.Substring(0,4);这样做是没问题的...如果存在问题是因为中文和字母,符号截取错误..可以这样做.
    byte[] b = System.Text.Encoding.GetEncoding("GB2312").GetBytes(aa);
    if (b.Length % 2 == 0) 
    {
    Response.Write("正确截取");
    }
    else {
    Response.Write("不能截取");//不能正常截取的时候可以采取减少截取一位的做法
    }