但是,如果下載中文文件,頁面在下載時會出現中文亂碼或不能顯示文件名的情況, 原因是不同的瀏覽器默認對下載文件的編碼方式不同,即是UTF-8編碼方式,而火狐 瀏覽器是的Base64編碼方式。所裏這裏需要解決瀏覽器兼容性問題,瀏覽解決器兼容 性問題的首要任務是要辨別訪問者是即還是火狐(其他),通過的Http請求體中的一個屬性可以辨別
解決亂碼方法如下(不要記憶 -瞭解):
if(agent.contains(“MSIE”)){
// IE瀏覽器
filename = URLEncoder.encode(文件名,“utf-8”);
filename = filename.replace(“+”,“”);
} else if(agent.contains(“Firefox”)){
//火狐瀏覽器
BASE64Encoder base64Encoder = new BASE64Encoder();
filename =“=?utf-8?B?”
+ base64Encoder.encode(filename.getBytes(“utf-8”))+“?=”;
} else {
//其它瀏覽器
filename = URLEncoder.encode(文件名,“utf-8”);
}
其中代理就是請求頭的User-Agent的值