2

我的公司运行网络邮件服务,我们试图诊断 Word 下载无法自动打开的问题 - 从 Yahoo Mail 下载的相同 *.doc 文件会打开,但我们的不会打开。

在调查标头的过程中,我们看到这来自雅虎:

content-disposition attachment; filename*="utf-8''word document.doc";

而我们的标题是这样的:

content-disposition attachment; filename="word document.doc";

雅虎究竟在用额外的星号和 utf-8'' 指定做什么?

4

2 回答 2

2

我认为正确的答案在 rfc 2231 中:

星号 ("*") 被重用以提供存在语言和字符集信息以及正在使用编码的指示符。单引号 ("'") 用于在参数值的开头分隔字符集和语言信息。百分号(“%”)用作编码标志,符合 RFC 2047。

具体来说,参数名称末尾的星号表示字符集和语言信息可能出现在参数值的开头。单引号用于分隔参数值字符串中的字符集、语言和实际值信息,百分号用于标记以十六进制编码的八位字节。例如:

    Content-Type: application/x-stuff;
     title*=us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A
于 2008-10-09T13:50:17.697 回答
0

您使用的是什么 Mime-Type?

根据 RFC 2183 ( http://www.ietf.org/rfc/rfc2183.txt ),星号是必需的:

在 [RFC 822] 的扩展 BNF 表示法中,Content-Disposition 头字段定义如下:

 disposition := "Content-Disposition" ":"
                disposition-type
                *(";" disposition-parm)

 disposition-type := "inline"
                   / "attachment"
                   / extension-token
                   ; values are not case-sensitive

 disposition-parm := filename-parm
                   / creation-date-parm
                   / modification-date-parm
                   / read-date-parm
                   / size-parm
                   / parameter

 filename-parm := "filename" "=" value

 creation-date-parm := "creation-date" "=" quoted-date-time

 modification-date-parm := "modification-date" "=" quoted-date-time

 read-date-parm := "read-date" "=" quoted-date-time

 size-parm := "size" "=" 1*DIGIT

 quoted-date-time := quoted-string
                  ; contents MUST be an RFC 822 `date-time'
                  ; numeric timezones (+HHMM or -HHMM) MUST be used
于 2008-10-09T11:47:24.090 回答