Java下載文件時名稱出現中文亂碼

問題
在進行文件下載的時候出現中文名稱亂碼,顯示不出來
response.setHeader(“Content-Disposition”, “filename=自定義的名稱.jpg” )
在這裏插入圖片描述
解決辦法
對中文名稱進行編碼處理:

        String fileName="自定義名稱.jpg";
       //獲得瀏覽器信息並轉換爲大寫
        String agent = request.getHeader("User-Agent").toUpperCase(); 
        if(agent.indexOf("MSIE") > 0 || (agent.indexOf("GECKO")>0 && agent.indexOf("RV:11")>0)){
        	//微軟的瀏覽器(IE和Edge瀏覽器)
            fileName = URLEncoder.encode(fileName, "UTF-8");
        }else {
            fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
        }
        response.setHeader("Content-Disposition", "filename=" + fileName);

使用上面的代碼進行編碼後,經測試在Chrome, Firefox ,IE ,360瀏覽器都可以正常顯示中文名稱。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章