Maison  >  Article  >  interface Web  >  Analyse d'encodage/décodage JS des chaînes d'URL

Analyse d'encodage/décodage JS des chaînes d'URL

高洛峰
高洛峰original
2017-02-04 09:33:031283parcourir

Bien que les trois méthodes escape(), encodeURI() et encodeURIComponent() puissent filtrer certains
caractères spéciaux qui affectent l'intégrité de l'URL. Cependant, ces deux derniers convertissent les chaînes en UTF-8 pour la transmission, ce qui résout le problème des caractères tronqués causés par différents encodages de page
. Par exemple : le format d'encodage (Charset) de la page d'envoi et de la page de réception est incohérent (en supposant que la page d'envoi est GB2312 et que l'encodage de la page de réception est
UTF-8), en utilisant escape() pour convertir et transmettre le chinois les chaînes provoqueront des caractères tronqués.
Voici différentes méthodes pour encoder/décoder des URL sous JS :
Méthode d'échappement : renvoie un objet String encodé qui peut être lu sur tous les ordinateurs.
function escape(charString : String) : String
Caractères qui ne seront pas encodés par cette méthode : @ * /
Description : La méthode escape renvoie une valeur de chaîne (format Unicode) contenant le contenu de charstring. Tous les espaces, signes de ponctuation, accents
et tout autre caractère non-ASCII sont remplacés par le codage %xx, où xx est égal au nombre hexadécimal représentant le caractère.
Par exemple, les espaces sont renvoyés sous la forme " ". (Les valeurs de caractères supérieures à 255 sont stockées au format %uxxxx.)
Remarque : la méthode d'échappement ne peut pas être utilisée pour coder des identifiants de ressources uniformes (URI). Pour l'encoder, utilisez les méthodes encodeURI et
encodeURIComponent.
Méthode encodeURI : renvoie une chaîne codée comme un identifiant de ressource uniforme (URI) valide.
function encodeURI(URISTring : String) : String
Caractères qui ne seront pas encodés par cette méthode : ! @ # $ & * ( ) = : / ; URI. Si le résultat du codage est transmis à decodeURI, la chaîne
initiale sera renvoyée. encodeURI n'encode pas les caractères suivants : ":", "/", ";" et "?". Veuillez utiliser
encodeURIComponent pour encoder ces caractères.
Méthode encodeURIComponent : renvoie une chaîne codant un composant valide en tant qu'identificateur de ressource uniforme (URI).
function encodeURIComponent(encodedURIString : String) : String
Caractères qui ne seront pas encodés par cette méthode : ! * ( ) '
Description : La méthode encodeURIComponent renvoie un URI encodé. Si le résultat de l'encodage est transmis à
decodeURIComponent, la chaîne initiale sera renvoyée. Étant donné que la méthode encodeURIComponent encodera tous les caractères,
veuillez noter que si la chaîne représente un chemin, tel que /folder1/folder2/default.html, les barres obliques qu'elle contient seront également
encodées, donc lorsque la chaîne The La chaîne ne sera pas valide lorsqu'elle sera envoyée sous forme de requête au serveur Web. Si la chaîne contient plusieurs composants URI
, veuillez utiliser la méthode encodeURI pour encoder.
Méthode unescape : renvoie la chaîne décodée à partir d'un objet String encodé avec la méthode d'échappement.
function unescape(charString : String) : String
Description : La méthode unescape renvoie une valeur de chaîne contenant le contenu de charstring. Tous les caractères
codés au format hexadécimal %xx sont remplacés par des caractères équivalents dans le jeu de caractères ASCII. (Les caractères codés au format %uxxxx (caractères Unicode) sont remplacés par des caractères Unicode en codage hexadécimal xxxx.)
Remarque : la méthode unescape ne doit pas être utilisée pour décoder les identifiants de ressources uniformes (URI). Veuillez utiliser les méthodes decodeURI et
decodeURIComponent à la place.
Méthode decodeURI : renvoie une forme non codée d'un identifiant de ressource uniforme (URI) codé.
function decodeURI(URIstring : String) : String
méthode decodeURIComponent : Renvoie la forme non codée d'un composant codé d'un Uniform Resource Identifier (URI).
function decodeURIComponent(encodedURISTring : String) : String
BTW : Méthode d'encodage d'URL en C#. . .
Encodage : Server.UrlEncode(string)
Décodage : Server.UrlDecode(string) Les trois premiers encodages côté client peuvent être décodés en arrière-plan à l'aide de cette méthode.

Pour plus d'articles liés à l'analyse de l'encodage/décodage JS des chaînes d'URL, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn