spring mvc 文件下載,文件名有中文符合丟失解決辦法

使用 文件下載的時候,發現 文件名稱 丟失了,而不是亂碼,解決辦法app

假設file_name的內容是:「工程文檔.docx」code

那麼下載的結果就是一個名爲「docx」的文件(文件名+後綴名),顯然,文件名中的中文字符丟失了ip

上網查了資料,大致的緣由就是header中只支持ASCII,因此咱們傳輸的文件名必須是ASCII,當文件名爲中文時,必需要將該中文轉換成ASCII。 utf-8

response.setContentType("application/octet-stream");
file_name = new String(file_name.getBytes(), "ISO-8859-1");
//或是file_name = URLEncoder.encode(file_name,"UTF-8");
response.setHeader("Content-Disposition","attachment;filename="+file_name);
// 其餘代碼略

 

以上的轉帖的,實際上個人這裏 文檔

String fileName="績效操做shouceV1.0.zip";
        //String fileNameHeader=URLEncoder.encode(fileName,"UTF-8");//不能夠的
        String fileNameHeader=new String(fileName.getBytes(), "ISO-8859-1"); // 可行的get

response.reset();
        response.setCharacterEncoding("utf-8");
        
        response.setContentType("application/octet-stream; charset=utf-8");
        response.setHeader("Content-Disposition", "attachment;filename="
                + fileNameHeader);it

相關文章
相關標籤/搜索