Struts里FormFile作文件上传下载时编码问题
Struts项目里采用UTF-8编码,没有问题。
但文件上传下载时,出现编码错误(仅文件名,文件内容没有错误)。
一、从客户端到Action
if(formFile != null) {
filename = new String(formFile.getFileName().getBytes() , "utf-8");
filesize = formFile.getFileSize();
input = formFile.getInputStream();//get InputStream
}
必须手工转码才能实现UTF-8的支持;
二、从服务器端到客户端
response.setContentType(CONTENT_TYPE);
response.setContentLength(new Long(vo.getFilesize()).intValue());
String saveAs = vo.getFilename().trim();
response.setHeader("Content-Disposition", String.valueOf((new StringBuffer("attachment;")).append(" filename=").append(new String(saveAs.getBytes() , "utf-8"))));
转换编码都不行
为什么呢?