Java下載文件名亂碼的問題通常是由于編碼不一致導致的。可以嘗試以下幾種方法解決:
1. 設置HttpServletResponse的編碼方式,例如:
response.setCharacterEncoding("UTF-8");
2. 設置Content-Disposition頭部信息,例如:
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
3. 使用response.getOutputStream()輸出文件內容,例如:
OutputStream out = response.getOutputStream();
out.write(fileBytes);
out.flush();
out.close();
這些方法可以保證下載文件名的編碼與瀏覽器編碼一致,從而解決下載文件名亂碼的問題。