AJAX 中国語の問題は、次の 2 つのカテゴリに分類されます。
1) 送信パスのパラメータが中国語であり、サーバーセクションで受信したパラメータ値が文字化けしています。
例えば:
var url="a.jsp?name=シャオ・リー";
xmlHTTP.open ("post",url,true);
解決:
JavaScript によって提供される、escape() メソッドまたは encodeURI() メソッドを使用します。次に例を示します。
クライアント:
var url="a.jsp?name=シャオ・リー";
url=エンコードURI(url);
url=encodeURI(url); // 2 回、非常に重要です [正確な理由はわかりません]
/************************************************/
var url="a.jsp?name=escape("Xiao Li")"; と書く人もいます。
この関数は encodeURI メソッドに似ています。
/************************************************/
xmlHTTP.setrequestheader("キャッシュ制御","キャッシュなし");
xmlHTTP.setrequestheader("Content-Type","application/x-www-form-urlencoded");
xmlHTTP.setrequestheader("contentType","text/html;charset=uft-8")//送信データのエンコード形式を指定
xmlHTTP.open ("post",url,true);
サーバー側:
文字列名 = request.getParameter("名前");
名前 = java.net.URLDecoder.decode("名前", "UTF-8");
2) 返されたresponseTextまたはresponseXML値に中国語の文字が含まれており、文字化けしています。 理由:サーバーセグメントによって送信されたデータがUTF-8形式でない場合、AJAXはresponseTextまたはresponseXML値を受信時にUTF-8形式に従ってデコードします。 , の場合、responseText または responseXML で受信した値が文字化けする可能性があります。
解決策: サーバー上でデータを送信する形式を指定します。
jsp ファイル内:
response.setContentType("text/text;charset=UTF-8");//返されるのは txt テキスト ファイルまたは
response.setContentType("text/xml;charset=UTF-8");//返された XML ファイル
概要: 1) Ajax 送信データの形式はデフォルトでは utf-8 で、サーバー側で受信する場合は java.net.URLDecoder.decode("", "UTF -8") メソッドでデコードします。
2) xtmlhttp によって返されるデータのデフォルトの文字エンコーディングは utf-8 であるため、サーバーがクライアントにデータを送信する場合は、上記の方法でも文字化けの問題を解決できない場合は、utf-8 エンコーディングも使用する必要があります。 jsp、htm、java ファイルは UTF-8 エンコード形式で保存されているので、変換してみてください。
つまり、フロントとバックのデータ対話の両方に UTF-8 エンコーディングを使用するだけです。
この記事は CSDN ブログからのものです。転載する場合は出典を明記してください: http://blog.csdn.net/jiaoxiaguoke/archive/2009/12/31/5110991.aspx