ContentDispositionHeaderValue.FileName和ContentDispositionHeaderValue.FileNameStar之间的区别

Jih*_*dad 5 .net url-encoding httpresponsemessage

我们有一个.Net Web应用程序,用户可以在其中下载文件.文件可以包含的文件名可能包含丹麦字符æ,ø和å以及某些外语的其他字符.

我们使用类HttpResponseMessage将ContentDispositionHeaderValue初始化的文件作为"附件"发送.

然而分配

FileName 
Run Code Online (Sandbox Code Playgroud)

属性在IE中不适用于丹麦语字符,但如果我将文件名分配给,则有效

FileNameStar
Run Code Online (Sandbox Code Playgroud)

文件名自动编码为正确的格式.

这样可行:

Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
    FileNameStar = "filename with æ ø and å"
};
Run Code Online (Sandbox Code Playgroud)

但是我找不到任何关于它为何被自动编码的文档,以及哪些浏览器支持此功能.

搜索互联网,给出建议,我应该在将字符串分配给FileNamestar属性之前对其进行编码.但这不是必需的,因为我可以在http跟踪中看到它被正确编码.

所有主流浏览器都支持这个吗?我可以确定文件名是否正确编码?

谢谢圣战

Jon*_*nas 6

取自这里

FileNameStar 属性使用 IETF RFC 5987 编码。FileName 和 FileNameStar 属性的区别仅在于 FileNameStar 使用 IETF RFC 5987 中定义的编码,允许使用 ISO-8859-1 字符集中不存在的字符。