2010-05-31 2 views
3

Pourquoi $ _SERVER ['HTTP_REFERER'] (PHP) et Request.ServerVariables ("HTTP_REFERER") (ASP) retournent un résultat différent si la chaîne de requête n'a pas caractères anglais?

php retour valeur correcte mais asp ne sera pas:

php: сабака

asp: ׁ| ° | ± | ° | ÷ | °

+1

Question intéressante! L'ASP.NET est-il une citation directe? Comment l'éditez-vous? –

+0

Si vous utilisez un navigateur Web pour la sortie, jetez un oeil à l'encodage/charset dans les propriétés de la page. – VolkerK

+0

@Pekka, avec response.write en ASP et echo en php – Sasha

Répondre

1

Selon RFC 2616, les caractères non ISO- 8859-1 devrait être spécialement codé. Par conséquent, il semble que celui qui vous envoie les en-têtes brise les spécifications. Voir le contenu du champ et TEXTE.

4.2 Message Headers

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 Basic Rules

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

La règle de texte est utilisé uniquement pour le contenu des champs descriptifs et les valeurs qui sont pas destinés à être interprété par l'analyseur de message . Les mots de * TEXT PEUVENT contenir des caractères provenant d'ensembles de caractères autres que ISO-8859-1 [22] uniquement lorsqu'ils sont codés conformément aux règles de la RFC 2047 [14].

Questions connexes