ホームページ  >  記事  >  バックエンド開発  >  Ajax+php中国語文字化け解決_PHPチュートリアル

Ajax+php中国語文字化け解決_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:17:53921ブラウズ

XMLHTTPはデータアップロードにUnicodeエンコーディングを使用しており、一般的なページではgb2312を使用しているため、ページ表示時に文字化けが発生します。ページを取得する際、XMLHttp は UTF-8 エンコーディングを返すため、表示が文字化けします。
解決策の 1 つは、PHP ファイルで宣言を GB2312 として表示することです

header("Content-Type:text/html;charset=GB2312");

そしてサーバーに送信された中国語をトランスコードします。
以下の通り
$_POST["コンテンツ"]=iconv("UTF-8","gb2312",$_POST["コンテンツ"]);
これで文字化け問題も解決できます

方法 2 は、UTF-8 エンコーディングを使用することです。ここではあまり言うことはありません

添付のテストルーチン
クライアント



<頭>

ajax ポストテスト


<スクリプト言語="javascript">
/**
* xmlhttp オブジェクトを初期化します
*/
関数 InitAjax()
{
var ajax=false; {
を試してください ajax = 新しい ActiveXObject("Msxml2.XMLHTTP"); } キャッチ (e) {
{
を試してください ajax = 新しい ActiveXObject("Microsoft.XMLHTTP")
} キャッチ (E) {
ajax = false
}
}
if (!ajax && XMLHttpRequest のタイプ!='未定義') {
ajax = 新しい XMLHttpRequest(); }
ajax を返します;
}
//フォームテストページにはフォームと表示レイヤーがあります
関数sendData()
{
var msg=document.getElementById("msg");
var f=document.form1;
var c=f.content.value;
//データを受け取るURL
var url="dispmsg.php";
var poststr="content="+c;
var ajax=InitAjax();
ajax.open("POST",url,true);
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send(poststr);
ajax.onreadystatechange=function(){
If(ajax.readyState==4 && ajax.status==200){
alert("何かを入手しました");
msg.innerHTML=ajax.responseText;
}
}
}



<フォーム名='form1'>






サーバー側

header("Content-Type:text/html;charset=GB2312");

if($_POST['コンテンツ'])

{
$_POST["コンテンツ"]=iconv("UTF-8","gb2312",$_POST["コンテンツ"]);
print("コンテンツは".$_POST['コンテンツ']);
}
それ以外
{
print("コンテンツは送信されませんでした");
}
?>



http://www.bkjia.com/PHPjc/371911.html

www.bkjia.com

http://www.bkjia.com/PHPjc/371911.html技術記事 XMLHTTPはデータアップロードにUnicodeエンコードを使用しており、一般的なページではgb2312を使用しているため、ページ表示時に文字化けが発生します。そして、ページを取得すると、XMLHttp は utf-8 を返します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。