Google chrome Chrome在处理文件名HTTP头时遇到问题?

Google chrome Chrome在处理文件名HTTP头时遇到问题?,google-chrome,http,Google Chrome,Http,当从chrome下载一个文件时,在其中加上一个引号,它会下载该文件,但带有URL的名称。如果我从文件名中删除单引号,该文件将正常下载。这只发生在Chrome中。Internet Explorer和Firefox工作正常 Chrome版本50.0.2661.94 m HTTP请求 Request URL:http://server/Service.do?csrfToken=abcd Content-Disposition:attachment; filename*=UTF-8''Lettre%20

当从chrome下载一个文件时,在其中加上一个引号,它会下载该文件,但带有URL的名称。如果我从文件名中删除单引号,该文件将正常下载。这只发生在Chrome中。Internet Explorer和Firefox工作正常

Chrome版本50.0.2661.94 m

HTTP请求

Request URL:http://server/Service.do?csrfToken=abcd
Content-Disposition:attachment; filename*=UTF-8''Lettre%20d'exp%C3%A9rience.rtf
这将提供下载名为“Service.do”的文件。如果我删除单引号的名称,它将提供下载一个文件与正确的名称


有解决办法吗?(除了更改文件名)

您需要对名称中的单个引号进行百分比编码

Content-Disposition: attachment; filename*=UTF-8''Lettre%20d%27exp%C3%A9rience.rtf
此外,建议您添加一个普通的
filename
参数,作为可能未实现
filename*
的较旧用户代理的仅ASCII回退:

Content-Disposition: attachment; filename="Lettre d'experience.rtf"; filename*=UTF-8''Lettre%20d%27exp%C3%A9rience.rtf

但这只是Chrome的一个问题。这算是一个Chrome bug吗?。或者只是浏览器没有实现RFC?。这似乎很奇怪,这种情况发生在Chrome上,而不是在Firefox上。@GabrielEspinel不加编码的单引号违反了法律。所以,恰恰相反,Firefox是。我明白了。这是有道理的。谢谢