文章目录

通过webwork2下载文件,文件名是通过ContentDisposition传到前台,而webwork没有对ContentDisposition做任何处理,所以中文的文件名传到前台就变成乱码了.没办法,webwork不处理那就自己处理好了.

自己写个toUtf8String将文件名转成UTF-8后再附到ContentDisposition,前台终于认了

 public String toUtf8String(String s) {
  StringBuffer sb = new StringBuffer();
  for (int i = 0; i < s.length(); i++) {
   char c = s.charAt(i);
   if (c >= 0 && c <= 255) {
    sb.append(c);
   } else {
    byte[] b;
    try {
     b = Character.toString(c).getBytes("utf-8");
    } catch (Exception ex) {
     System.out.println(ex);
     b = new byte[0];
    }
    for (int j = 0; j < b.length; j++) {
     int k = b[j];
     if (k < 0)
      k += 256;
     sb.append("%" + Integer.toHexString(k).toUpperCase());
    }
   }
  }
  return sb.toString();
 }

 

文章目录