环境中统一使用UTF-8编码。在代码前面使用request.setCharacterEncoding("UTF-8");文件名正常显示中文,但是在弹出的保存对话框中文件名显示中文。网上找了很多方法,最终发现以下方法能够解决这个问题。
response.addHeader("Content-Disposition", "attachment; filename=" + encodingFileName(fileName));
response.addHeader("content-length", Long.toString(filesize));
public static String encodingFileName(String fileName) {
String returnFileName = "";
try {
returnFileName = URLEncoder.encode(fileName, "UTF-8");
returnFileName = StringUtils.replace(returnFileName, "+", "%20");
if (returnFileName.length() > 150) {
returnFileName = new String(fileName.getBytes("GB2312"), "ISO8859-1");
returnFileName = StringUtils.replace(returnFileName, " ", "%20");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return returnFileName;
}
注意这里最重要的是要对fileName的进行两次编码。而且要对空格进行处理。
分享到:
相关推荐
我上传的是一个servlet,里面有详细的说明,自己看看就知道怎么做了
jsp与servlet文件上传代码,可以上传中文文件名,不乱码 jsp与javaBean文件上传代码,但上传中文文件名乱码 刚写完的。
这是一个工程例子,里面包含了上传文件,另存文件和重命名文件功能, 下载文件和下载重命名文件及文件名中文乱码问题等 还有遍历了文件目录中的文件,上传成功后,看可以直接看到文件列表和下载
ajax中文乱码问题在中文中经常会出现这种问题,其实只要稍加注意就不会出现ajax中文乱码这回事情了,注意前后台编码一致.你用的是中文.而ajax传输数据的时候用的是utf-8 ,还有对ajax get方法时最好escape 或urlcode,...
response进行文件下载的代码,并且包含解决中文文件名的问题
jsp SmartUpload 组件,经过测试,保证解决上传中文文件名乱码的问题。里面有六个.java文件(ServletUpload.java;SmartFile.java;SmartFiles.java;SmartRequest.java;SmartUpload.java;SmartUploadException.java) ...
//根据原文件名保存文件 String filename=t_name; try { // 保存文件到C:\\upload目录下 fileItem.write(new File("D:\\upload\\" + filename)); System.out.println(filename); out.println("文件上传成功. ...
全书一共被压缩为5个rar,这是第二个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...
全书一共被压缩为5个rar,这是第三个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...
全书一共被压缩为5个rar,这是第四个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...
本文档总计92页,20928个字,共分为九大模块,模块一:javaWeb入门概念(资源分类、网络通信三要素、软件架构...模块九:文件上传和下载(限制上传(文件的大小和类型)、详细代码、解决下载时文件名乱码问题) --author
//根据原文件名保存文件 String filename=t_name; try { // 保存文件到C:\\request.getRealPath("/")目录下 fileItem.write(new File(request.getRealPath("/") + filename)); System.out.println(filename); out....
全书一共被压缩为5个rar,这是第五个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...
本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序。SSH各框架的均为当前最新版本: •Struts 1.2 •Spring 1.2.5 •Hibernate 3.0 本文选用的数据库为Oracle 9i,当然你可以在不...
原生文件上传(io操作)4,smartupload方式文件上传原生的smartupload对编码这一块没有做处理,导致上传中文名称的图片时文件名乱码,因此反编译并修改了smartupload代码,重新打成jar包。为支持中文命名的图片显示...
但是它本身自带的download功能并不支持中文名称的文件,在下载的时候会出现乱码,我自己编写了一个FileDownload类,放到了这个jar包中,这个类用的UTF-8编码方式,所以可以对中文文件名进行很好的支持,下面是这个类...
编辑器 FCKeditor2.4 使用说明 ...问题三: 上传时新建的中文目录全部乱码 虽然上传到服务器上的文件名正常,但在JSP页面点下载链接时文件名乱码导致不能正常下载 查找资料:TOMCAT 链接参数有中文时,乱码解决方法 ...