ホームページ > バックエンド開発 > PHPチュートリアル > gb2312_PHP としてエンコードされたページでの Ajax インタラクションでの中国語文字化けの問題を解決するチュートリアル

gb2312_PHP としてエンコードされたページでの Ajax インタラクションでの中国語文字化けの問題を解決するチュートリアル

WBOY
リリース: 2016-07-13 10:54:15
オリジナル
978 人が閲覧しました

gb2312としてエンコードされたページでのAjaxインタラクションでの中国語文字化けの問題を解決します
Ajax は utf-8 形式のみをサポートし、gb2312 エンコード形式をサポートできないため、ajax を使用して gb2312 エンコード プログラムを使用すると文字化けが頻繁に発生します。

という解決策を見つけました。

サーバーによって送信されるデータは依然としてgb2312でエンコードされており、クライアントはjsを使用して漢字をutf8エンコードに変換し、ページに表示します

search.php チュートリアル
header("コンテンツタイプ: text/html; charset=gb2312");
'./search.htm' を含めます;
?>

search.htm


<頭>

高度な検索


高度な検索


<フォームメソッド="ポスト"アクション="">
学校の種類:
<名前=「学校タイプ」を選択>




学校名:
<名前="sid" id="sid"を選択>



<スクリプト タイプ="テキスト/ウェブページの特殊効果">
関数 ajax(設定) {
var xhr = window.activexobject ? new activexobject("microsoft.xmlhttp") : new xmlhttprequest()、成功 = false;
xhr.open(設定.タイプ, 設定.url);
If(settings.type == 'post')
xhr.setrequestheader('content-type', 'application/x-www-form-urlencoded');
xhr.send((!settings.cache ? 'time=' + new date().gettime() + '&' : '') + settings.data);
設定.loader();
settimeout(function() {
if(!successed) {
alert('リクエストタイムアウト!');
xhr.abort();
}
}, settings.timeout);
xhr.onreadystatechange = function() {
If (xhr.readystate == 4 && xhr.status == 200) {
settings.callback(xhr.responsetext.replace(/(^s*)|(s*$)/g, ""));
}
成功 = true;
}
}
関数 a(t) {
ajax({
タイプ: '投稿'、
URL: 'ajax.php',
データ: 'schooltype=' + t,
タイムアウト: 8000、
キャッシュ: true、
ローダー: function() {},
コールバック: function(d) {
var arr = eval(d);
If(typeof(arr) == 'オブジェクト') {
var obj、オプション;
Document.getelementbyid('sid').innerhtml = '';
for(var i = 0; obj = arr; i ++) {
オプション = document.createelement('オプション');
option.value = obj[0];
option.innerhtml = txt2utf8(obj[1], '');
Document.getelementbyid('sid').appendchild(オプション);
}
}
}
})
}
関数 txt2utf8(文字列, プレフィックス){
for(var i=0,utf8=[];i utf8.join('');
を返します }
a(0);


ajax.php

header("コンテンツタイプ: text/html; charset=gb2312");
$schooltype = !empty($_post['schooltype']) $_post['schooltype'] : 0;
スイッチ($schooltype) {
ケース0:
echo "[['40', '太平渓町花里宝小学校'],['41', '太平渓町長陵黒竜江希望小学校'],['42', '楽天渓町中学校'], [' 43'、'楽天渓鎮蓮陀中学校']]";
休憩;
ケース 1:
echo "[['40', '太平渓鎮花里宝小学校'],['41', '黒竜江省長陵太平渓鎮ホープ小学校']]";
休憩;
ケース 2:
echo "[['42', 'ロッテクリークタウン中学校'],['43', 'ロッテクリークタウン蓮多中学校']]";
休憩;
デフォルト:
休憩;
}
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632334.html技術記事 gb2312 としてエンコードされたページでの Ajax インタラクションでの中国語文字化けの問題を解決します。Ajax は utf-8 形式のみをサポートし、gb2312 エンコード形式をサポートできません。そのため、ajax を使用して文字化けを生成する gb2312 エンコードされたプログラムに遭遇することがよくあります。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート