一.、乱码问题概述:
在实际项目与应用中,文件上传和下载的对象大多是中文文档,因此在Struts的文件上传和下载功能实现中,中文乱码是一个不得不面对的问题。其中的乱码问题分为两类:
1、jsp页面中文乱码;2、上传下载的文件名和内容中文乱码。
二、 类型一 jsp页面中文乱码:
. 解决方案:利用jsp的page标签设置编码方式为UTF-8,代码:
<%@ page pageEncoding="UTF-8"%>
.成功效果:
三.、类型二:上传下载的文件名或内容中文乱码:
.解决方案
在struts.xml中用el表达式表示文件名,如下:
同时在DownloadAction中定义fileName并初始化,转码
private String fileName="报名表.docs";
public String getFileName() {
try {
fileName = new String(fileName.getBytes(), "ISO8859-1");}
catch (UnsupportedEncodingException e)
{ e.printStackTrace();
}
return fileName;
}
.成功效果:
四、总结:
1、每一个页面统一使用UTF-8编码,尽量避免类型转换。
2、在文件上传和下载中可以使用el(expressi language)来引用对象,在Action里面对其进行转码。