下载文件乱码处理
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