Pouvez-vous donner un contexte? Est-ce dans une action de forme? Juste affiché sur une page?
jprofitt
@ user470184 Je n'ai pas voté contre mais je l'ai considéré. Il y a déjà une tonne d'informations sur SO concernant ce problème.
Charles Sprayberry
«Comportement générique» est encore assez vague. Vous vous interrogez sur quelque chose comme <p>www.testurl.com/test?param1=test&current=true</p>ou <a href="www.testurl.com/test?param1=test&current=true">linky</a>?
jprofitt le
@ jprofitt <a href="www.testurl.com/test?param1=test¤t=true"> linky </a>
blue-sky
Réponses:
126
& est HTML pour "Début d'une référence de caractère".
& est la référence de caractère pour "Une esperluette".
¤t; n'est pas une référence de caractère standard et est donc une erreur (les navigateurs peuvent essayer d'effectuer une récupération d'erreur, mais vous ne devriez pas en dépendre).
Si vous avez utilisé une référence de caractère pour un caractère réel (par exemple ™), il (™) apparaîtra dans l'URL au lieu de la chaîne souhaitée.
(Notez que selon la version de HTML que vous utilisez, vous devrez peut-être terminer une référence de caractère par un ;, c'est pourquoi &trade=sera traité comme ™. HTML 4 permet de l'omettre si le caractère suivant est un caractère non-mot ( comme =) mais certains navigateurs (Hello Internet Explorer) ont des problèmes avec cela).
L'objectif ici est donc d'éviter les problèmes lorsque vous essayez de valider votre site Web. Vous devriez donc remplacer votre esperluette par &lorsque vous écrivez une URL dans votre balisage.
Notez que le remplacement &par & n'est fait que lors de l'écriture de l'URL en HTML, où se "&"trouve un caractère spécial (avec "<" et ">"). Lorsque vous écrivez la même URL dans un message électronique en texte brut ou dans la barre d'adresse de votre navigateur, vous utiliseriez "&"et non "&". Avec HTML, le navigateur se traduit par "&"de "&"sorte que le serveur Web ne voit que "&"
et non "&"dans la chaîne de requête de la requête.
C'est un excellent exemple. Quand ¤test analysé dans un nœud de texte, il est converti ¤t. Lorsqu'il est analysé dans une valeur d'attribut , il est analysé comme ¤t.
Si vous voulez ¤tdans un nœud de texte, vous devez écrire &currentdans votre balisage.
<p>www.testurl.com/test?param1=test&current=true</p>
ou<a href="www.testurl.com/test?param1=test&current=true">linky</a>
?Réponses:
&
est HTML pour "Début d'une référence de caractère".&
est la référence de caractère pour "Une esperluette".¤t;
n'est pas une référence de caractère standard et est donc une erreur (les navigateurs peuvent essayer d'effectuer une récupération d'erreur, mais vous ne devriez pas en dépendre).Si vous avez utilisé une référence de caractère pour un caractère réel (par exemple
™
), il (™) apparaîtra dans l'URL au lieu de la chaîne souhaitée.(Notez que selon la version de HTML que vous utilisez, vous devrez peut-être terminer une référence de caractère par un
;
, c'est pourquoi&trade=
sera traité comme ™. HTML 4 permet de l'omettre si le caractère suivant est un caractère non-mot ( comme=
) mais certains navigateurs (Hello Internet Explorer) ont des problèmes avec cela).la source
HTML ne reconnaît pas le
&
mais il le reconnaîtra&
car il est égal à&
en HTMLJ'ai regardé ce post que quelqu'un avait fait: http://www.webmasterworld.com/forum21/8851.htm
la source
Ma source: http://htmlhelp.com/tools/validator/problems.html#amp
Ceci est invalide:
Explication:
L'objectif ici est donc d'éviter les problèmes lorsque vous essayez de valider votre site Web. Vous devriez donc remplacer votre esperluette par
&
lorsque vous écrivez une URL dans votre balisage.J'espère que cela t'aides : )
la source
C'est un excellent exemple. Quand
¤t
est analysé dans un nœud de texte, il est converti¤t
. Lorsqu'il est analysé dans une valeur d'attribut , il est analysé comme¤t
.Si vous voulez
¤t
dans un nœud de texte, vous devez écrire&current
dans votre balisage.Les détails sanglants sont ici: http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference
la source
si vous faites une chaîne de caractères. faire:
la source
&
HTML, pas les&
URL.