web-dev-qa-db-fra.com

Différence entre l'encodage URL et l'encodage HTML

Quelle est la différence entre un RL Encode et un HTML Encode ?

79
Quintin Par

Le codage HTML échappe les caractères spéciaux dans les chaînes utilisées dans les documents HTML pour éviter toute confusion avec des éléments HTML comme la modification

"<hello>world</hello>" 

à

"&lt;hello&gt;world&lt;/hello&gt;"

Le codage d'URL fait la même chose pour les valeurs de chaîne dans une URL, comme changer

"hello+world = hello world"

à

"hello%2Bworld+%3D+hello+world"
76
Mehrdad Afshari

urlEncode remplace les caractères spéciaux par des caractères qui peuvent être compris par les navigateurs Web/serveurs Web dans le but d'adresser ... d'où l'URL. Par exemple, les espaces sont remplacés par% 20, '=% 27 etc ...

Voir ces références:

HtmlEncode remplace les caractères spéciaux par des chaînes de caractères qui sont reconnues par le moteur HTML lui-même pour rendre le contenu de la page - des choses comme & devient &amp; or < = &lt; > = &lt; cela empêche le moteur HTML d'interpréter ces caractères comme des parties du balisage HTML et donc de les rendre comme s'il s'agissait de chaînes.

Voir cette référence:

23
BenAlabaster

Le HTML et les URL sont essentiellement très limités langues. En tant que langue, ils ajoutent du sens à des mots-clés ou des opérateurs spécifiques. Cependant, pour ces deux langues, les mots clés sont presque toujours des caractères uniques. Par exemple

  • HTML:> et <
  • URL:/et:

Dans l'utilisation de chaque langue bien qu'il soit possible d'utiliser ces constructions d'une manière qui n'assure pas le sens de la langue. Par exemple, ce message contient un caractère>. Je ne veux pas qu'il soit interprété comme du HTML, juste du texte.

C'est là que les méthodes Encode et Decode entrent en jeu. Ces méthodes prendront respectivement une chaîne et convertiront tous les caractères qui seraient autrement traités comme des mots clés en une forme échappée qui ne sera pas interprétée comme faisant partie du langage.

Par exemple: Passer> dans HtmlEncode retournera gt;

13
JaredPar

HTMLEncode et URLEncode traitent les caractères non valides dans HTML et URL, ou plus précisément, les caractères qui doivent être spécialement écrits pour être interprétés correctement. Par exemple, en HTML, les caractères <et> sont utilisés pour indiquer les balises. Ainsi, si vous vouliez écrire une formule mathématique, quelque chose comme 1 + 1 <2 + 2, le "<" serait normalement interprété comme le début d'une balise. HTMLEncoding transforme ce caractère en "lt;" qui est la représentation codée du signe inférieur à. URLEncoding fait de même, mais pour les URL, pour lesquelles les caractères spéciaux sont différents, bien qu'il y ait un certain chevauchement.

3
Michael Bray

Je ne sais pas dans quelle langue vous travaillez, mais le PHP manual par exemple fournit de bonnes explications.

URLEncode

Renvoie une chaîne dans laquelle tous les caractères non alphanumériques à l'exception de -_. ont été remplacés par un signe de pourcentage (%) suivi de deux chiffres hexadécimaux et d'espaces codés en signe plus (+). Il est codé de la même manière que les données publiées à partir d'un formulaire WWW sont codées, c'est-à-dire de la même manière que dans le type de support application/x-www-form-urlencoded. Cela diffère du codage "RFC 1738 (voir rawurlencode ()) en ce que pour des raisons historiques, les espaces sont codés sous forme de signes plus (+).

lire la suite

1
Pekka 웃