Bonjour à tous,

Mon problème depuis deux jours est le suivant :
codage des caractères spéciaux :

Formulaire + XMLHttpRequest + Servlet
Dans le formulaire (HTML) rien de spéciale, prenant l’exemple d’un seul champs de text. « myText »
Concernant XMLHttpRequest (javaScript), rien de spéciale aussi, récupération de l’objet « http_request » et :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Var myTextValue = document.elementById (« myTest »).value;
var body = vra1=encodeURI(myTextValue);
http_request.open("POST", url_de_servlet, true);
http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", body.length);
http_request.send(body);
Coté serveur servlet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
response.setHeader("Cache-Control", "no-cache");
	response.setContentType("text/html; charset=UTF-8");
	try {
		request.setCharacterEncoding("UTF-8");
	} catch (UnsupportedEncodingException ex) {
			ex.printStackTrace();
		}
for (Enumeration tEnum = request.getParameterNames();tEnum.hasMoreElements();)
{
	String key = (String)tEnum.nextElement(); 
	System.out.println(key + " : ="+request.getParameter(key)+"=");
	/*try {
		String valeurUTF8 = URLDecoder.decode(request.getParameter(key), "UTF-8");
		System.out.println(key + " : ="+ valeurUTF8 +"=");
	} catch (UnsupportedEncodingException e) {
		e.printStackTrace();
	}*/
}

Exemple Test :
Input : l'école ça coute des €
Sortie : l'école ça coute des �

quand je remplace encodeURI par escape les accent marche mais pas les autres caractères (€) tEnum est vide.

Les fichiers utilisé sont normalement sauvegardé en « UTF-8 » par Eclipse.
Version de JDK 1.4
Tomcat 5.5