springboot中设置header:Content-Disposition乱码
时间: 2024-05-07 16:19:17 浏览: 303
vue中如何实现pdf文件预览的方法
在 Spring Boot 中设置 Content-Disposition 的时候,可能会出现乱码的情况。这是因为 Content-Disposition 中的文件名需要进行编码,以便在 HTTP 头中传递。如果没有进行编码,则可能会出现乱码的情况。
解决方法:
在设置 Content-Disposition 的时候,需要对文件名进行编码。可以使用以下方式对文件名进行编码:
```java
String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
```
其中,`fileName` 表示文件名,`"UTF-8"` 表示编码格式,`replaceAll("\\+", "%20")` 表示将空格替换为 `%20`。
然后,在设置 Content-Disposition 的时候,可以使用以下代码:
```java
response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName);
```
其中,`encodedFileName` 表示编码后的文件名。这样就可以避免 Content-Disposition 出现乱码的情况了。
阅读全文