Comment savoir si une URL est décodée / encodée?

Je suis en utilisant la méthode Javascript decodeURIComponent pour décoder une URL encodée. Maintenant, je vais avoir un problème, que, parfois, l'URL est codé par deux fois lors de la redirection entre les serveurs, parfois, il est codé en une seule fois.

Je veux vérifier que si l'URL est toujours codé après l'appel de la méthode decodeURIComponent. Comment puis-je le faire? Un pointeur serait très utile pour moi.

Mise à jour - 1

Si je récursivement appeler une méthode et de vérifier si l'URL contient encore "%", si elle contient "%" puis de le décoder et l'appel à la méthode de nouveau; et si pas de retour à l'appelant, ça marche?

Mise à jour - 2

Pour mon cas, j'ai:

callBackUrl=http%253A%252F%252Fadbc.com%252FPOSM%252Fapp%252Fpages%252Fadf.task-flow%253Fadf.tfDoc%253D%25252FWEB-INF%25252Ftask-flows%25252Fcatalog-edit-task-flow.xml%2526adf.tfId%253Dcatalog%2526_adf.ctrl-state%253Db9akorh22_9%2526articleReference%253D10C00135%2526previousView%253Dcatalog-home%2526fromUCM%253Dtrue%2526articleType%253Dposm%2526developer%253Dcentral

Maintenant, je suis prenant la valeur de l'callBackUrl dans mon js méthode, puis du décodage et de tir window.open() avec qui décodé URL. les paramètres sont les mêmes et l'on a:

  • adf.tfDoc
  • adf.tfId
  • articleReference
  • previousView
  • fromUCM
  • articleType
  • développeur

Paramètres. Donc, je sais il n'y a pas de chaîne de requête comme value="%..".

Mise à jour - 3

J'ai écrit la méthode suivante:

var decodeURLRecursively = function(url) {
    if(url.indexOf('%') != -1) {
        return decodeURLRecursively(decodeURIComponent(url));
    }

    return url;
}

source d'informationauteur Tapas Bose