Bonjour,
Comme beaucoup de personnes, j'ai un problème d'accents ... J'ai parcouru de très nombreux tutos et pages web sur le sujet, mais je en trouve toujours pas ma solution ...
J'ai une page web en html contenant le header
J'ai un javascript à l'intérieur de cette page qui envoie l'url suivante à une servlet de nom Search ... (notez que je précise bien le setRequestHeader ...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
Voici le code javascript:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 var _url = "Search?caseParam1=" + _caseParam1; if (typeof XMLHttpRequest != "undefined") { req = new XMLHttpRequest(); } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); } req.open("POST", _url, true); req.setRequestHeader("Content-Type", "text/plain;charset=ISO-8859-1"); req.onreadystatechange = callback; req.send(null);
La servlet Search, quand à elle, traite l'arrivée du message comme ceci:
Et c'est la que survient le problème ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 request.setCharacterEncoding("ISO-8859-1"); String myWord = request.getParameter("caseParam1");
Voici l'URL que l'on peut voir avec Firebug, juste avant l'envoi à la servlet :
En revanche, voici ce que contient la String myWord dans la servlet :Search?caseParam1=québec
Et tous les caractères spéciaux arrivent "de travers" dans la servlet ...québec
Dans les paramètres de démarrage de la JVM de Tomcat, j'ai ajouté :
Dans le fichier server.xml de Tomcat, dans la partie Connector, j'ai ajouté :-Dfile.encoding="ISO-8859-1"
Et malgré tout ça, cela ne fonctionne toujours pas ...URIEncoding="ISO-8859-1"
Je m'arrache les cheveux sur ce problème depuis deux jours maintenant ...
Quelqu'un à -t-il une idée ?
Merci d'avance.
Partager