由于JAVA的字符串是unicode的
所以我在JSP上在固定长度上取得的英文串和汉字串长度不一样,这怎么解决??比如在页面上就是有五厘米的地方显示最新贴子列表,,但贴子的标题是英文或汉字,取出的内容不一样,致使长度也不一样,怎么 解决?感谢

解决方案 »

  1.   

    提示:(str.charAt(i)+"").getBytes().length()!=1说明第i位为Unicode字符.
      

  2.   

    兄弟,麻烦不要提示啊,我刚学JSP快死了,提示我也想不起来,放代码吧,晕死了,呵呵
      

  3.   

    /** 
       * 将字符串截短,取前n个字符,英文算半个字符。 
       * @param orignalString 原字符串 
       * @param length 长度 
       * @param chopedString 超过部分的表示字符串 
       * @return 截取的字符串 
       */ 
      public static String chop(String orignalString,int length,String chopedString) { 
        if (orignalString==null||orignalString.length()==0) { 
          return orignalString; 
        } 
        orignalString=orignalString.replaceAll(" "," "); 
        if (orignalString.length()<length) { 
          return orignalString; 
        } 
        StringBuffer buffer=new StringBuffer(length); 
        length=length*2; 
        int count=0; 
        int stringLength=orignalString.length(); 
        int i=0; 
        for (;count<length&&i<stringLength;i++) { 
          char c=orignalString.charAt(i); 
          if (c<'\u00ff') { 
            count++; 
          } else { 
            count+=2; 
          } 
          buffer.append(c); 
        } 
        if (i<stringLength) { 
          buffer.append(chopedString); 
        } 
        return buffer.toString(); 
      }