Encoder voit “&” (et commercial) en tant que “&” entité HTML
Je suis de l'encodage d'une chaîne de caractères qui sera passée dans l'URL (via GET). Mais si j'utilise escape
, encodeURI
ou encodeURIComponent
, &
sera remplacé par %26amp%3B
, mais je veux qu'il soit remplacé par %26
. Ce que je fais mal?
- D'où vient la chaîne vient? Pouvez-vous poster le code que vous avez jusqu'à présent?
&
est la bonne façon d'échapper à l'esperluette dans un contexte HTML...où est votre source en venir? et quelle est la destination? Il est peut-être mieux à faire de ce côté serveur par exemple.- Je grap quelque chose du corps HTML (et qui est HTML encodé (donc, il est & je me rends compte maintenant)) et je dois passer dans une URL... Donc, j'ai besoin de décoder le code html (mais comment?) fr puis l'encoder la chaîne (avec encodeURIComponent)...
- trouvé... j'ai utilisé jquery .html(), pas .texte()... stupide (Un)
- jQuery .html() cartes à la propriété innerHTML, donc la question est comme je l'ai dit dans ma réponse 🙂
Vous devez vous connecter pour publier un commentaire.
Sans voir ton code, c'est difficile de répondre autre qu'un coup de poignard dans le noir. Je suppose que la chaîne que vous êtes en passant à encodeURIComponent(), qui est la bonne méthode à utiliser, vient du fait de l'accès à la innerHTML de la propriété. La solution est de prendre le innerText/textContent la valeur de la propriété au lieu de cela:
Si ce n'est pas le cas, vous pouvez utiliser le replace() méthode pour remplacer l'entité HTML:
Si vous n'avez littéralement ceci:
Alors le résultat est
%26
, vous pouvez le tester ici. Assurez-vous que la chaîne de l'encodage est juste&
et pas&
pour commencer...sinon c'est l'encodage correctement, ce qui est probablement le cas. Si vous avez besoin d'un résultat différent pour une raison quelconque, vous pouvez faire un.replace(/&/g,'&')
avant l'encodage.HTML est et de l'URI d'encodages.
&
est&
codé en HTML tout%26
est&
dans L'encodage des URI.Donc, avant de l'encodage des URI de votre chaîne, vous pourriez vouloir HTML décoder et puis URI coder 🙂
résultat
%26AndOtherHTMLEncodedStuff
Espère que cela vous fait gagner un certain temps