2012-02-02 57 views
3

我想为文件名添加撇号。该文件在我的Java服务器上生成,并通过基于Faces的HTTPServletResponse对象发回。通过下面的代码,文件名结束为“french_filename.txt”。对撇号进行编码以确保文件名正确发送的正确方法是什么?通过http头添加撇号到文件名 - 编码

HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse(); 

response.reset(); 
response.setContentType("application/txt"); 
response.setHeader("Content-disposition", "attachment; filename=\"french'filename.txt\""); 

回答

1

要在IE和Chrome中都能工作,我发现“法国文件”效果最好。

2

由于apostroph是reserved character您可能需要对其进行编码。尝试使用编码所有URLEncoder的文件名:

URLEncoder.encode("french'filename.txt", "UTF-8")); 

它将返回:french%27filename.txt您可以选择不同的编码,如果你需要。

+0

有趣 - 这在IE中有效,但Chrome会将其保留为%27。这是我第一次看到IE比Chrome更好用! – OddProblems 2012-02-03 14:46:55