ホームページ  >  記事  >  php教程  >  php AJAXで中国語送信時に文字化けする問題の解決策

php AJAXで中国語送信時に文字化けする問題の解決策

WBOY
WBOYオリジナル
2016-06-13 12:27:111047ブラウズ

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

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


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



//解決策は簡単です。escape( string) javascript の関数

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


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


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

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


PHP:header('Content-Type: text/html ;charset= GB2312');
ASP:Response.Charset("GB2312")
JSP:response.setHeader("Charset","GB2312");

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