Php $服务器[';HTTP#U引用器';]与Request.ServerVariables(";HTTP#U引用器";)

Php $服务器[';HTTP#U引用器';]与Request.ServerVariables(";HTTP#U引用器";),php,asp.net,unicode,query-string,http-referer,Php,Asp.net,Unicode,Query String,Http Referer,如果查询字符串包含非英语字符,为什么$_SERVER['HTTP\u REFERER'](PHP)和Request.ServerVariables(“HTTP\u REFERER”)(ASP)返回不同的结果 php返回正确的值,但asp不会: 菲律宾:ааааааа asp:根据,ISO-8859-1中未包含的字符应进行特殊编码。因此,无论是谁向您发送标题,似乎都违反了规范。请参阅字段内容和文本 消息头=字段名“:“[字段值] 字段名=令牌 字段值=*(字段内容| LWS) 字段内容= T

如果查询字符串包含非英语字符,为什么$_SERVER['HTTP\u REFERER'](PHP)和Request.ServerVariables(“HTTP\u REFERER”)(ASP)返回不同的结果

php返回正确的值,但asp不会:

菲律宾:ааааааа

asp:根据,ISO-8859-1中未包含的字符应进行特殊编码。因此,无论是谁向您发送标题,似乎都违反了规范。请参阅字段内容和文本

消息头=字段名“:“[字段值]
字段名=令牌
字段值=*(字段内容| LWS)
字段内容=

TEXT=]


有趣的问题!ASP.NET是直接报价吗?如何输出?如果使用web浏览器进行输出,请查看页面属性中的编码/字符集。@Pekka,带有response.write In asp和echo Inphp@VolkerK,它是同一个浏览器,我不相信它会为每种技术(php或asp)发送不同的属性@msony如果很可能编码头不同,请检查它,即使只是为了确保。
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>