Bonjour et mercie pour tes préçisions.
Mon problème était en 2 temps. Etait, car depuis j'ai fini par trouvé une solution , sûrement pas la meilleur, mais a le merite de fonctionner.
Donc :
Le pb se situait au niveau des "?", des "&" (évidemment dans l'url tout ce qui est derrière est considéré comme des varaibles) et d'autres caratères un peu plus rares. Du coup j'ai utiliser la solution :
url = escape(contenu);
Seulement cette fois ce sont les accents qui ne passaient plus alors j'ai ajouté avant la fonction suivante :
// Remplace toutes les occurences d'une chaine function replaceAll(str, search, repl) { while (str.indexOf(search) != -1) str = str.replace(search, repl); return str; }
// Remplace les caractères accentués (+ espace) function htmlToAccent(str) { var spec = new Array("é", "É", "è", "È", "ê", "Ê", "ë", "Ë", "à", "À", "ù", "Ù", "ç", "Ç", " €", "§"); var norm = new Array("é", "É", "è", "È", "ê", "Ê", "ë", "Ë", "à", "À", "ù", "Ù", "ç", "Ç", "€", "§"); for (var i = 0; i < spec.length; i++) str = replaceAll(str, norm[i], spec[i]); return str; }
contenu = htmlToAccent(contenu); puis j'encode l'url : url = escapde(url); Le tout est envoyé à la class ajax (bon je passe).
L'idéal serait de traiter tous les accents, mais pour les principaux et les caratères spéciaux ça passe très bien.
Comme je disais, il y a sûrement meiux à faire, par exemple avec ta solution (encodeURIComponent()).
Les commentaires sont les bienvenus surtout si je suis dans l'erreur...
|