0

L'un des paramètres de requête d'une requête http faite par le client contient des caractères japonais. Si je fais cette demande dans Firefox et regarde le paramètre dès qu'il atteint le serveur en déboguant dans Eclipse, les caractères semblent bien. Si je fais la même demande en utilisant IE 8, les caractères se brouillent quand je les regarde au même point dans le code du serveur (ils vont bien dans les deux navigateurs, cependant). Je l'ai examiné les requêtes POST faites par les deux navigateurs, et ils passer à la fois la même séquence de caractères, ce qui est:Les caractères asiatiques dans IE 8 sont tronqués dans Serveur; est-ce dû à l'en-tête HTTP Content-Type?

%2C%E3%81%9D%E3%81%AE%E4%BB%96 

Je pense donc que cela a à voir avec l'encodage. Si je regarde les en-têtes HTTP de la requête, je remarque les différences suivantes. Dans IE:

Content-Type: application/x-www-form-urlencoded 
Accept: */* 

Dans Firefox:

Content-Type application/x-www-form-urlencoded; charset=UTF-8 
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 

Je pense que l'en-tête IE 8 ne précise pas l'encodage UTF-8 explicitement, même si elle est spécifiée dans la balise meta de la Document HTML. Je ne suis pas sûr si c'est le problème. J'apprécierais toute aide, et s'il vous plaît faites le moi savoir si vous avez besoin de plus d'informations.

Répondre

0

Assurez-vous que la page qui contient le formulaire a UTF-8 comme charset. Dans le cas d'IE, la meilleure chose à faire est d'envoyer un entête HTTP ('Content-Type: text/html; jeu de caractères = utf-8') et d'ajouter une balise meta http-equiv avec le type de contenu/charset à votre html (j'ai vu cela réellement important, même quand l'en-tête approprié a été envoyé).

Deuxièmement, votre formulaire peut également spécifier le type de contenu:

<form enctype="application/x-www-form-urlencoded; charset=utf-8> 
+0

La demande est faite au moyen d'un appel AJAX, et je viens de modifier cet appel afin qu'il spécifie le charset UTF-8, de sorte que maintenant les deux IE et Firefox ont "application/x-www-format-urlencoded; charset = utf-8" comme Content-Type. Maintenant, si je regarde les personnages d'Eclipse, ils ne sont plus déformés. Mais maintenant, ils apparaissent comme des carrés quand ils sont rendus à IE, alors qu'ils vont bien dans Firefox. Par "rendu", je veux dire que les caractères apparaissent dans un graphique généré par JFreeCharts. J'apprécierais toutes les autres suggestions. – Agustin

+0

Travailler avec UTF-8 consiste à garder encodé tous les aspects de votre chaîne de requête/réponse codée en UTF-8: vos pages, mais aussi votre base de données (et les connexions à la base de données!). Un carré indique généralement que quelque part, quelque chose n'est pas défini sur UTF-8. Dans ce cas, je suspecterais la page que vous regardez, puisque Firefox montre les caractères correctement. Vérifiez dans IE quel est le type de contenu de la page (clic droit> info page, ou quelque chose). –

Questions connexes