如果在使用Spring Boot下載文件時出現亂碼,可能是由于文件名的編碼問題造成的。可以嘗試以下方法來解決問題:
Content-Disposition
頭部指定文件名的編碼類型。將文件名進行URL編碼,然后使用HttpHeaders
設置Content-Disposition
頭部。String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
headers.add("Content-Disposition", "attachment; filename=\"" + encodedFileName + "\"");
Content-Type
頭部為application/octet-stream
,并且指定字符編碼為UTF-8
。headers.add("Content-Type", "application/octet-stream; charset=UTF-8");
InputStream inputStream = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
通過這些方法,可以確保文件名和文件內容的編碼是正確的,從而避免亂碼問題。