170 votes

Puis-je encoder les esperluettes dans <a href...="">?

Je suis en train d'écrire le code qui génère automatiquement le code HTML, et je le veux pour coder les choses correctement.

Dire que je suis de la génération d'un lien vers l'URL suivante:

http://www.google.com/search?rls=en&q=stack+overflow

Je suis en supposant que toutes les valeurs d'attribut doit être codé en HTML. (Corrigez-moi si je me trompe.) Cela signifie donc que si je suis en train de mettre l'URL ci-dessus dans une balise d'ancrage, je doit coder le signe qu' &amp;, comme ceci:

<a href="http://www.google.com/search?rls=en&amp;q=stack+overflow">

Est-ce exact?

185voto

zneak Points 45458

Oui, il est. Entités HTML sont analysées à l'intérieur attributs HTML, et un errant & serait de créer une ambiguïté. C'est pourquoi vous devez toujours écrire &amp; au lieu de simplement en & à l'intérieur de tous les attributs HTML.

Cela dit, seulement & et les citations doivent être encodés. Si vous avez des caractères spéciaux comme é dans votre attribut, vous n'avez pas besoin de coder ces pour satisfaire l'analyseur HTML.

Il sert à être le cas que les URLs besoin d'un traitement spécial avec des caractères non-ASCII, comme é. Vous avez eu à coder ceux qui utilisent pour cent échappe, et dans ce cas, il donnerait %C3%A9, parce qu'ils ont été définis par la RFC 1738. Cependant, la RFC 1738, a été remplacée par la RFC 3986 (Uri, Uniform Resource identifiers) et RFC 3987 (IRIs, Internationalized Resource identifiers), sur lequel le WhatWG a basé ses travaux pour définir la manière dont les navigateurs doivent se comporter quand ils voient une URL contenant des caractères non ASCII depuis HTML5. Il est donc maintenant possible d'inclure des caractères non-ASCII dans les Url, %-codé ou pas.

27voto

Jukka K. Korpela Points 71599

Par officiel actuel HTML recommandations, l'esperluette doivent être échappés par exemple, comme en &amp; dans des contextes de ce genre. Cependant, les navigateurs ne l'exigent pas, et le HTML5 CR propose d'en faire une règle, de sorte que des règles spéciales s'appliquent dans les valeurs d'attribut. Actuel HTML5 validateurs sont obsolètes à cet égard (voir rapport de bug avec les commentaires).

Il restera possible de coder les esperluettes dans les valeurs d'attributs, mais en dehors de validation avec les outils actuels, il n'y a pas de besoin pratique de leur échapper en href valeurs (et il y a un petit risque de faire des erreurs si vous commencez à y échapper).

0voto

casablanca Points 41814

Oui, c'est correct.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X