Javascript encodeURIComponent ne pas encoder les guillemets simples
L'essayer:
encodeURIComponent("'@#$%^&");
Si vous essayez ceci vous permettra de voir tous les caractères spéciaux sont codés à l'exception de l'apostrophe. Quelle fonction dois-je utiliser pour encoder TOUS les caractères et utiliser le PHP pour les décoder?
Grâce.
- Pourriez-vous être plus précis sur la partie PHP, s'il vous plaît? Comment vous l'envoyer? Ce qui n'a actuellement pas de travail?
- L'ensemble du processus est abit compliqué à expliquer. - Je envoyer la valeur codée de la base de données à l'aide d'ajax et PHP (c'est pourquoi la citation doit être codé autrement MySQL problèmes de se produire), puis-je récupérer la valeur à l'aide de PHP et je le décoder à l'aide de rawurldecode()
- Arghh, non! PHP doit échapper à toutes les requêtes SQL lui-même pour des raisons de sécurité. Si les citations nécessaires pour être échappé par JS vous avez fait quelque chose de mal.
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de savoir pourquoi vous voudriez qu'ils soient encodés. Si vous ne voulez échapper les guillemets simples, vous pouvez utiliser
.replace(/'/g, "%27")
. Toutefois, de bonnes références sont:var html = "<a href='" + link + "'>foo</a>";
vous voulez vous assurer que l'intérieur des guillemets simples sont échappées.encodeURI(Component)
pour que. Si vous créez des chaînes HTML, vous utilisezhtmlAttributeEscape
!htmlAttributeEscape
une fonction standard?link="/?foo&bar"
qui seraient le résultat d'un lien html comme<a href='/?foo&bar'>
. Ne serait pasencodeURIComponent(link).replace(/'/g, "%27")
être préférable?%2F%3Ffoo%26bar
serait préférable./?foo='fiz'&bar
, alors le choix est entre:/?foo=%27fiz%27&bar
et/?foo='fiz'&bar
. Les deux sont moches, mais sera probablement de travail, celui-ci peut être plus pedanticly correct pour le HTML, mais la première peut être copié et collé dans une URL.encodeURIComponent
ne le fait pas, elle conduit à%2F%3Ffoo%3D'fiz'%26bar
.Vous pouvez utiliser
vérifier la référence http://mdn.beonex.com/en/JavaScript/Reference/Global_Objects/encodeURIComponent.html
J'ai trouvé une astuce qui ne manque jamais de tous les caractères. Je lui dis de remplacer tout accepter pour rien. Je fais comme ça (le codage d'URL):
JS:
HTML:
Comme @Bergi écrit u peut juste remplacer tous les caractères: