2

私の会社はウェブメール サービスを運営しており、Word のダウンロードが自動的に開かないという問題を診断しようとしていました。

ヘッダーを調査する過程で、これが Yahoo からのものであることがわかりました。

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

ヘッダーは次のようでしたが、

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

追加のアスタリスクと utf-8 '' 指定で Yahoo は正確に何をしているのですか?

4

2 に答える 2

2

これに対する正しい答えは RFC 2231 にあると思います:

アスタリスク ("*") は、言語と文字セットの情報が存在し、エンコードが使用されていることを示すために再利用されます。単一引用符 ("'") は、パラメーター値の先頭で文字セットと言語情報を区切るために使用されます。パーセント記号 (「%」) は、RFC 2047 に準拠したエンコード フラグとして使用されます。

具体的には、パラメーター名の末尾にあるアスタリスクは、パラメーター値の先頭に文字セットと言語情報が表示される可能性があることを示す指標として機能します。パラメータ値文字列内の文字セット、言語、および実際の値の情報を区切るために一重引用符が使用され、16 進数でエンコードされたオクテットにフラグを付けるためにパーセント記号が使用されます。例えば:

    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 に答える