クエリ文字列に英語以外の文字が含まれている場合、$ _ SERVER ['HTTP_REFERER'](PHP)とRequest.ServerVariables( "HTTP_REFERER")(ASP)が異なる結果を返すのはなぜですか?
phpは正しい値を返しますが、aspは次のことを行いません。
php:сабака
asp:ׁ׀°׀±׀°׀÷׀°
クエリ文字列に英語以外の文字が含まれている場合、$ _ SERVER ['HTTP_REFERER'](PHP)とRequest.ServerVariables( "HTTP_REFERER")(ASP)が異なる結果を返すのはなぜですか?
phpは正しい値を返しますが、aspは次のことを行いません。
php:сабака
asp:ׁ׀°׀±׀°׀÷׀°
RFC 2616によると、ISO-8859-1にない文字は特別にエンコードする必要があります。したがって、ヘッダーを送信している人は誰でも仕様に違反しているようです。field-contentおよびTEXTを参照してください。
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>
TEXT = <any OCTET except CTLs, but including LWS>
TEXTルールは、メッセージパーサーによって解釈されることを意図していない説明的なフィールドの内容と値にのみ使用されます。* TEXTの単語には、RFC 2047 [ 14 ]の規則に従ってエンコードされた場合にのみ、ISO-8859-1[22]以外の文字セットの文字が含まれる場合があります。