下载文件乱码处理

import org.apache.commons.lang3.StringUtils;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

/**
 * @Author wd
 * @create 2019/11/29
 * Description: <br/>
 */
public class DownloadUtil {


    /**
     * 根据浏览器返回不同编码 (解决IE乱码问题)
     *
     * @param name      文件名称
     * @param userAgent 浏览器标识
     * @param charset   编码方式
     * @return
     * @throws UnsupportedEncodingException
     */
    public static String fileNameGarbled(String name, String userAgent, Charset charset) throws UnsupportedEncodingException {
        if (StringUtils.contains(userAgent, "MSIE") || StringUtils.contains(userAgent, "Trident") || StringUtils.contains(userAgent, "Edge")) {
            //IE  Edge 浏览器
            name = URLEncoder.encode(name, "UTF8");
        } else {
            //火狐,google等其他浏览器
            // 下载显示的文件名,解决中文名称乱码问题
            name = new String(name.getBytes(StandardCharsets.UTF_8), charset);
        }
        return name;
    }

}


charset值为StandardCharsets.ISO_8859_1

posted @ 2019-11-29 16:34  wdmiye  阅读(465)  评论(0编辑  收藏  举报