Les problèmes chinois AJAX sont divisés en deux catégories :
1) Les paramètres du chemin d'envoi sont en chinois et les valeurs des paramètres reçues dans la section serveur sont tronquées.
Par exemple:
var url="a.jsp?name=Xiao Li";
xmlHTTP.open ("post",url,true);
Solution:
Utilisez les méthodes escape() ou encodeURI() fournies par javascript, par exemple :
Client:
var url="a.jsp?name=Xiao Li";
url=encodeURI(url);
url=encodeURI(url); //Deux fois, très critique [je ne sais pas exactement pourquoi]
/************************************************/
Certaines personnes écrivent également var url="a.jsp?name=escape("Xiao Li"");
La fonction est similaire à la méthode encodeURI.
/************************************************/
xmlHTTP.setrequestheader("cache-control","no-cache");
xmlHTTP.setrequestheader("Content-Type","application/x-www-form-urlencoded");
xmlHTTP.setrequestheader("contentType","text/html;charset=uft-8")//Spécifiez le format d'encodage des données envoyées
xmlHTTP.open ("post",url,true);
Côté serveur :
Nom de la chaîne = request.getParameter("name");
nom = java.net.URLDecoder.decode("nom", "UTF-8");
2) La valeur ResponseText ou ResponseXML renvoyée contient des caractères chinois et est tronquée. Raison : AJAX décode la valeur ResponseText ou ResponseXML selon le format UTF-8 lors de sa réception si les données envoyées par le segment de serveur ne sont pas au format UTF-8. , , alors la valeur reçue par ResponseText ou ResponseXML peut être tronquée.
Solution : Précisez le format d'envoi des données sur le serveur :
Dans le fichier jsp :
réponse.setContentType("text/text;charset=UTF-8");//Ce qui est renvoyé est un fichier texte txt ou
réponse.setContentType("text/xml;charset=UTF-8");//fichier XML renvoyé
Résumé : 1) Le format des données soumises ajax est utf-8 par défaut, en utilisant la méthode escape() ou encodeURI() fournie par javascript Lors de la réception côté serveur, utilisez java.net.URLDecoder.decode("",. Méthode "UTF -8") pour décoder.
2) Le codage de caractères par défaut des données renvoyées par xtmlhttp est utf-8, donc lorsque le serveur souhaite envoyer des données au client, il doit également utiliser le codage utf-8. Si la méthode ci-dessus ne parvient toujours pas à résoudre le problème tronqué, alors. vous pouvez essayer de convertir les fichiers jsp, htm, java enregistrés au format d'encodage UTF-8.
En bref : utilisez simplement le codage UTF-8 pour l’interaction des données avant et arrière.
Cet article provient du blog CSDN Veuillez indiquer la source lors de la réimpression : http://blog.csdn.net/jiaoxiaguoke/archive/2009/12/31/5110991.aspx.