火狐浏览器文件下载,文件名乱码问题
package com.demo.test;
import java.io.UnsupportedEncodingException;
import java.util.Base64;
public class Test {
public static void main(String[] args) throws UnsupportedEncodingException {
// 关于文件下载,中文名乱码处理-BASE64编码;
String content = "这是需要Base64编码的内容";
// 转化内容为字节数组;
String encodedString =Base64.getEncoder().encodeToString(content.getBytes("UTF-8"));
System.out.println(encodedString);
// 解码
// 解码为字节数组
byte[] bytes =Base64.getDecoder().decode(encodedString);
// 将字节数据中的数据重新转化为字符串
String contents = new String(bytes,"UTF-8");
System.out.println(contents);
// 如果客户端是火狐浏览器,那么对中文需要进行编码
// 设置请求头:Content-Disposition:attachment;filename=中文名
// 编码成:Content-Disposition:attachment;filename==?charset?B?XXXXXX?=?
// =?表示编码内容的开始
// charset:表示字符集
// B:表示BASE64编码
// xxxx:表示文件名BASE64编码后的内容
// ?=:表示编码的结束符;
//
}
}