3

クエリ文字列に英語以外の文字が含まれている場合、$ _ SERVER ['HTTP_REFERER'](PHP)とRequest.ServerVariables( "HTTP_REFERER")(ASP)が異なる結果を返すのはなぜですか?

phpは正しい値を返しますが、aspは次のことを行いません。

php:сабака

asp:ׁ׀°׀±׀°׀÷׀°

4

1 に答える 1

1

RFC 2616によると、ISO-8859-1にない文字は特別にエンコードする必要があります。したがって、ヘッダーを送信している人は誰でも仕様に違反しているようです。field-contentおよびTEXTを参照してください。

4.2メッセージヘッダー

message-header = field-name ":" [ field-value ]
field-name     = token
field-value    = *( field-content | LWS )
field-content  = <the OCTETs making up the field-value
                 and consisting of either *TEXT or combinations
                 of token, separators, and quoted-string>

2.2基本ルール

TEXT           = <any OCTET except CTLs,
                 but including LWS>

TEXTルールは、メッセージパーサーによって解釈されることを意図していない説明的なフィールドの内容と値にのみ使用されます。* TEXTの単語には、RFC 2047 [ 14 ]の規則に従ってエンコードされた場合にのみ、ISO-8859-1[22]以外の文字セットの文字が含まれる場合があります。

于 2010-05-31T15:25:59.193 に答える