Safari浏览器未解码在内容处置标头中设置的文件名



我使用org.apache.catalina.util.URLEncoder对文件名进行了编码,并在内容处理标头中设置如下:

String encoded = urlEncoder.encode(fileName, StandardCharsets.UTF_8);
response.setHeader("Content-Disposition", "attachment;filename=""+encodedFileName+""");

文件名:ຕົວຢ່າງ.pptx

编码:%E0%BA/95%E0%BA%BB%E0%BA%A7%E0%BA%A2%E0%BB%88%E0%BA%B2%E0%BA%87%pptx

在chrome浏览器中下载时,它会正确解码和下载。但safari并没有解码这个名字,而是以编码格式下载。

此外,从safari浏览器下载时,扩展名会附加到文件名中。类似%E0%BA%95%E0%BA%BB%E0%BA%A7%E0%BA%A2%E0%BB%88%E0%BA%B2%E0%BA%87%2Epptx.pptx

谢谢,提前。

因为对文件名进行URL编码是不可移植的。

所有细节都在RFC 6266中;上面描述的格式将适用于所有当前浏览器。

相关内容

  • 没有找到相关文章

最新更新