Quelle est la différence entre un encodage d'URL et un encodage HTML ?
Réponses
Trop de publicités?Le codage HTML échappe aux caractères spéciaux des chaînes utilisées dans les documents HTML pour éviter toute confusion avec des éléments HTML tels que les modifications.
"<hello>world</hello>"
à
"<hello>world</hello>"
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"
urlEncode remplace les caractères spéciaux avec des personnages qui peuvent être compris par les navigateurs web/serveurs web dans le but de relever... d'où l'URL. Par exemple, les espaces sont remplacés par %20, ' = %27 etc...
Voir ces références:
- http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
- http://www.degraeve.com/reference/urlencoding.php
HtmlEncode remplace les caractères spéciaux avec des chaînes de caractères qui sont reconnus par le moteur HTML elle-même pour rendre le contenu de la page - des choses comme & devient & or < = < > = <
ce qui empêche le moteur HTML à partir de l'interprétation de ces personnages que les parties de la balise HTML et donc les rendre comme s'ils étaient les chaînes de caractères.
Voir cette référence:
HTML et URL sont essentiellement très limité de langues. Comme une langue qu'ils ajoutent du sens à des mots clés spécifiques ou des opérateurs. Pour deux de ces langues, si, les mots clés sont presque toujours des caractères individuels. Par exemple
- HTML: > et <
- URL: / et :
Dans l'usage de chaque langue s'il est possible d'utiliser les ces concepts d'une manière qui ne permet pas de garantir le sens de la langue. Par exemple, ce post contient un caractère>. Je ne veux pas qu'il soit interprété comme du HTML, juste le texte.
C'est là que de Coder et de Décoder des méthodes entrent en jeu. Ces méthodes seront respectivement prendre une corde et les convertir l'un des personnages qui autrement seraient traités comme des mots-clés dans un échappé de la forme qui ne sera pas interprétée comme faisant partie de la langue.
Par exemple: Passage d' > en HtmlEncode sera de retour >
HTMLEncode et URLEncode traiter avec des caractères non valides dans le 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 des balises. Ainsi, si vous souhaitez écrire une formule math, quelque chose comme 1+1 < 2+2, le '<' normalement être interprété comme le début d'une balise. HTMLEncoding fait de ce personnage dans "<" quelle est la représentation codée du signe inférieur. Encodage en fait de même, mais pour les Url, pour lesquels les caractères spéciaux sont différents, bien qu'il existe un certain chevauchement.
Je ne sais pas quelle est la langue dans laquelle vous travaillez, mais le PHP manual par exemple, fournit de bonnes explications.
URLEncode
Retourne une chaîne dont tous les les caractères non-alphanumériques sauf -_. ont été remplacés par un pourcentage (%) signe suivi de deux chiffres hexadécimaux et espaces codés comme des signes plus ( + ). Il est codé de la même façon que le posté données à partir d'un formulaire web est codé, qui est de la même manière que dans application/x-www-form-urlencoded type de support. Cela diffère de la » RFC 1738 codage (voir rawurlencode()) pour des raisons historiques, les espaces sont codés comme des signes plus ( + ).