ホームページ  >  記事  >  バックエンド開発  >  Halo テーマ mjolnir mix php+AJAX 中国語を送信すると文字化けする問題の解決策

Halo テーマ mjolnir mix php+AJAX 中国語を送信すると文字化けする問題の解決策

WBOY
WBOYオリジナル
2016-07-29 08:38:521424ブラウズ

//送信パラメータを直接与えると文字化けします

コードをコピーコードは以下の通りです:


http_request.open("POST",url,true); setRequestHeader('Content- Type', 'application/x-www-form-urlencoded');
http_request.send("action="+strName+"&val="+val); // val の値が中国語の場合、文字化けが発生します

//解決策は非常に簡単です: JavaScriptのescape(string)関数を使用します

コードをコピー コードは次のとおりです:

http_request.open("POST" ,url,true);
http_request.setRequestHeader('Content -Type', 'application/x-www-form-urlencoded');
http_request.send("action="+strName+"&val="+escape(val)』 ); // val の値は中国語であり、文字化けは発生しません

AJAX で返される ResponseText GET の文字化けに対する最も簡単な解決策
AJAX を使用してページを取得すると、文字化けが発生します。 RESPONSETEXT は文字化けして表示されます。これは、xmlhttp が返された応答テキストを処理するときに、サーバーが UTF-8 データ ストリームを送信すると中国語の文字が正しく表示されますが、responseBody は UTF-8 でエンコードおよびデコードされるためです。エンコードされたストリームが送信されると、めちゃくちゃになります。解決策は、XMLHTTP が混乱しないように、送信されるストリームに HEADER を追加して、送信されるエンコード ストリームを示すことです。

コードをコピーします コードは次のとおりです:

PHP:header('Content-Type:text/html;charset=GB2312');
ASP:Response.Charset("GB2312")
JSP: response.setHeader ("文字セット","GB2312");
以上、Halo テーマ mjolnir mix php+AJAX で中国語送信時に文字化けが発生する問題の解決方法を、Halo テーマ mjolnir mix の内容も含めて紹介し、PHP チュートリアルに興味のある友人の参考になれば幸いです。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。