2010-09-07 4 views
5

Je rencontre des problèmes pour encoder une chaîne de caractères afin de pouvoir placer une variable dans un lien. Je suis sûr que c'est vraiment simple, mais j'ai eu du mal à faire quoi que ce soit.jQuery encodeURI pour href ne fonctionne pas

$("a.inquiry").attr("href", "/inquiry/6933/text=" + encodeURI("text o")); 

Cela ne fonctionne pas.

encodeURI("text o") 

retourne encore:

link/text o 

Au lieu de:

link/text%20 

également essayé:

$("a.inquiry").attr("href", encodeURIComponent("/inquiry/6933/text=" + "text o")); 
+0

Comme vous avez tagué cette question avec * encodeuricomponent *, n'avez-vous pas essayé? – Gumbo

+1

encodeURIComponent devrait fonctionner. J'ai essayé l'échantillon que vous avez fourni et cela semble fonctionner. Regardez sur http://jsfiddle.net/XdJCM/. – Zafer

Répondre

13

Essayez avec encodeURIComponent à la place.

+2

qui fonctionne soit ;-(soit son ne fonctionne pas ou quelque chose que je fais est en train de défaire l'encodage après? – holden

+0

@holden: Il pourrait être ainsi, 'encoderURIComponent' a travaillé pour moi toujours – Sarfraz

+0

ne fonctionne pas avec moi aussi, travailler réellement avec la virgule mais pas pour les espaces –

6

Je pensais avoir le même problème, mais j'ai réalisé que je regardais les résultats dans le mouseover du lien résultant et dans la barre d'adresse après avoir cliqué sur le lien. Il s'avère que mon navigateur affichait les espaces dans les deux cas, c'est-à-dire lorsque j'ai copié l'URI hors de la barre d'adresse et que je l'ai collé dans emacs, le% 20 s'est révélé.

+0

Wow, c'était la solution pour moi aussi. – user3761308