/** * 获得下载文件的资源名称 * * @param fileName * @return */ public static String getResourceDOwnFileName(String fileName) throws UnsupportedEncodingException { StringBuffer out = new StringBuffer(fileName.length()); for (int i = 0; i < fileName.length(); i++) { char c = fileName.charAt(i); String regEx = "[ _`!@#$%^&()+=|{}*':;',\\[\\].<>/?~|\n|\r|\t"; int flag = regEx.indexOf(c); if (flag != -1) { out.append(c); continue; } out.append(URLEncoder.encode(String.valueOf(c), "UTF-8")); } return out.toString(); }
中文的特殊字符是不需要使用URLEncoder编码,由浏览器可以自动解析为原来的,英文的特殊字符则需要编码