7

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

我们使用类 HttpResponseMessage 来发送 ContentDispositionHeaderValue 被初始化为“附件”的文件。

但是分配

FileName 

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

FileNameStar

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

所以这有效:

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

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

搜索互联网,建议我应该在将字符串分配给 FileNamestar 属性之前对字符串进行 url 编码。但这不是必需的,正如我在 http 跟踪中看到的那样,它被正确编码。

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

感谢圣战

4

1 回答 1

4

取自这里

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

于 2017-02-14T10:15:05.480 回答