浏览器和 Postman 不解码 Content-Disposition header 中的 UTF-8 文件名

Browsers and Postman doesn't decode UTF-8 filename in Content-Disposition header

所以我有这样的情况,我需要 return CSV/excel 文件 POST 请求。问题是 return 不同语言的文件名,例如中文,德文等。据我所知,有两种方法可以做到这一点:

  1. 到returnContent-Disposition: attachment; filename="привет.txt"
  2. 到returnContent-Disposition: attachment; filename*=UTF-8''%some%encoded%name.txt"

它们都不能与 Postman/Browser 一起使用,但第二个可以与 Swagger 一起使用。第一种方式 return 是这样的 Content-Disposition: attachment; filename="???.txt"。第二个 returns 完全相同的文件名引号文本(编码为 UTF-8,例如:UTF-8''%some%encoded%name.txt。我正在使用 Java Spring 堆栈。

所以答案是在 UI 部分通过在 UTF-8'' 符号后对其进行编码来处理 Content-Disposition header。