1. 程式人生 > >關於火狐瀏覽器下載檔案時,中文檔案亂碼問題的處理方案。

關於火狐瀏覽器下載檔案時,中文檔案亂碼問題的處理方案。

//設定要下載的檔案的媒體格式
response.setContentType(this.getServletContext().getMimeType(filename));
//處理中文檔案下載時火狐瀏覽器中文檔名亂碼的問題
//從請求頭中獲取User-Agent判斷當前使用的是否是火狐瀏覽器
String header = request.getHeader("User-Agent");
if(header.contains("Firefox")){
//說明是火狐瀏覽器,使用Base64Encoder類進行編碼
BASE64Encoder base = new BASE64Encoder();
filename = "=?utf-8?B?"+base.encode(filename.getBytes("utf-8"))+"?=";
}else{
//是其他瀏覽器,使用URLEncoder類進行編碼
filename = URLEncoder.encode(filename,"utf-8");
}
//設定要被下載的檔名
response.setHeader("Content-Disposition","attachment;filename="+filename);