en utilisant la fonction évasion/unescape de JavaScript est presque toujours la mauvaise chose, il est incompatible avec l'URL codantes ou tout autre codage standard sur le web. Les caractères non-ASCII sont traités de manière inattendue ainsi que les espaces, et les anciens navigateurs n'ont pas nécessairement le même comportement.
Comme mentionné par Roenving, la méthode que vous voulez est decodeURIComponent(). C'est un ajout plus récent que vous ne trouverez pas sur IE 5.0, donc si vous avez besoin de supporter ce navigateur (espérons que non, de nos jours!), Vous devrez implémenter la fonction vous-même. Et pour les caractères non-ASCII, cela signifie que vous devez implémenter un encodeur UTF-8. Le code est disponible si vous en avez besoin.
Tout simplement parce qu'il faut une chaîne comme argument -) – roenving