如果在使用SpringBoot下载文件时出现乱码,可能是由于文件名的编码问题造成的。可以尝试以下方法来解决问题:
- 使用
Content-Disposition
头部指定文件名的编码类型。将文件名进行URL编码,然后使用HttpHeaders
设置Content-Disposition
头部。
StringencodedFileName=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");
InputStreaminputStream=newFileInputStream(file);
BufferedReaderreader=newBufferedReader(newInputStreamReader(inputStream,"UTF-8"));
通过这些方法,可以确保文件名和文件内容的编码是正确的,从而避免乱码问题。