我想对可下载的文件名进行编码。我想用 ą ę ć ż ź 之类的波兰语字母设置文件名。这是我的代码:
response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode("ŻżŹźĄą", 'UTF-8'))
它适用于 Chrome,但 MozillaFirefox 显示不正确。
如何正确设置编码?
它行不通。HTTP 标头隐含地需要 ASCII 但最高的拉丁 1 编码。没有标准以 UTF-8 对名称进行编码。如果你分解这些字母,Yolu 会更好。请参阅:如何在 HTTP 中对 Content-Disposition 标头的文件名参数进行编码?
这是因为 Chrome 和 IE 有问题。“%”在 Content-Disposition 参数中并不特殊,除非您使用 RFC 5987 中定义的编码。