如题,求解,谢谢各位了!小弟新手!!

解决方案 »

  1.   

    楼主说的乱码是指分割时对汉字的处理吗,我这里正好有代码,你可以看看:public static String bSubstring(String s, int length) throws Exception { byte[] bytes = s.getBytes("Unicode");
    int n = 0; // 表示当前的字节数
    int i = 2; // 要截取的字节数,从第3个字节开始
    for (; i < bytes.length && n < length; i++) {
    // 奇数位置,如3、5、7等,为UCS2编码中两个字节的第二个字节
    if (i % 2 == 1) {
    n++; // 在UCS2第二个字节时n加1
    } else {
    // 当UCS2编码的第一个字节不等于0时,该UCS2字符为汉字,一个汉字算两个字节
    if (bytes[i] != 0) {
    n++;
    }
    }
    }
    // 如果i为奇数时,处理成偶数
    if (i % 2 == 1) {
    // 该UCS2字符是汉字时,去掉这个截一半的汉字
    if (bytes[i - 1] != 0)
    i = i - 1;
    // 该UCS2字符是字母或数字,则保留该字符
    else
    i = i + 1;
    }
    return new String(bytes, 0, i, "Unicode");
    }
      

  2.   

    楼上的只适合中文GBK,其他编码完全不行。
      

  3.   

    可以先检测文件的编码格式先!再获取到文件的编码格式!可以使用cpdetector_1.0.8.jar来获取文件的编码格式!
      

  4.   

    楼主是需要的这个吗 public static void main(String[] args) {
    String str = "english汉字test测试";
    System.out.println(splitStr(str,6));
    System.out.println(splitStr(str,7));
    System.out.println(splitStr(str,8));
    System.out.println(splitStr(str,9));
    System.out.println(splitStr(str,10));
    System.out.println(splitStr(str,11));
    }

    public static String splitStr(String str, int length){
    char[] cs = str.toCharArray();
    int index = 0;
    while(length > 0){
    if(cs[index++] > 255){
    length -= 2;
    }else{
    length--;
    }
    }
    return str.substring(0, length == 0 ? index : --index);
    }
      

  5.   


    Mozilla发布过一个编码检测的算法,这里有一个开源的java包:http://jchardet.sourceforge.net/index.html
      

  6.   

    首先必须是判断编码,确定了编码就确定有几个字节来确定一个字符了。不过里面混着普通的字符。例如半角的英文字母。不过这样的字符是不符合之前确认的编码规则的。这样就可以把这些字符区分出来了。分割文件还有个关注的地方就是文件的分割点。比如,500k分成一个文件。不过第500k个字节和500k+1个字节组成一个字符。 这样不要分开。否则下一页也会出现乱码,判断的方法还是使用编码的规则如果确定是半个字符。就要把下一个字符算到本页上。或者把这个字符算到下一页上。有关编码的规则就要查相关的文档了。 目前比较流行的是unicode 和 gbk的。做几个常用的就可以了。 
      

  7.   

    可以再页面分割<c:forTokens  var="token" items="${resource.resourceURL}" delims=";" varStatus="status" >
                            <a href="DownLoadResource.action?file=${fn:split(token,'?')[0]}">${fn:split(token,"?")[1]}</a>
                          <br/>
              </c:forTokens>