Struts2文件上传与下载中的中文乱码问题解决方案

一.、乱码问题概述:

在实际项目与应用中,文件上传和下载的对象大多是中文文档,因此在Struts的文件上传和下载功能实现中,中文乱码是一个不得不面对的问题。其中的乱码问题分为两类:
1、jsp页面中文乱码;2、上传下载的文件名和内容中文乱码。


二、 类型一 jsp页面中文乱码:

Struts2文件上传与下载中的中文乱码问题解决方案_第1张图片


. 解决方案:利用jsp的page标签设置编码方式为UTF-8,代码:

<%@ page pageEncoding="UTF-8"%>

Struts2文件上传与下载中的中文乱码问题解决方案_第2张图片


.成功效果:
Struts2文件上传与下载中的中文乱码问题解决方案_第3张图片


三.、类型二:上传下载的文件名或内容中文乱码:


Struts2文件上传与下载中的中文乱码问题解决方案_第4张图片

这里写图片描述

.解决方案

  • 在struts.xml中用el表达式表示文件名,如下:

    Struts2文件上传与下载中的中文乱码问题解决方案_第5张图片

  • 同时在DownloadAction中定义fileName并初始化,转码

 private String fileName="报名表.docs";

    public String getFileName() {
        try {
            fileName = new String(fileName.getBytes(), "ISO8859-1");}
        catch (UnsupportedEncodingException e)
        {      e.printStackTrace();
        }
        return fileName;
    }

Struts2文件上传与下载中的中文乱码问题解决方案_第6张图片

.成功效果:

Struts2文件上传与下载中的中文乱码问题解决方案_第7张图片

四、总结:
1、每一个页面统一使用UTF-8编码,尽量避免类型转换。
2、在文件上传和下载中可以使用el(expressi language)来引用对象,在Action里面对其进行转码。

你可能感兴趣的:(学习——常见问题,WEB——jsp)