ホームページ >バックエンド開発 >PHPチュートリアル >Ajaxコードの文字化けに関する問題
Ajaxコード文字化け問題
SQL Server2000に接続する必要があるため、元のコードのutf8をgb2312に変更した結果、前のページと次のページをクリックすると、データベースはデフォルトで gb2312_chinese_ci になっています
コードは次のとおりです:
php コード:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <title>PHP+ajax分页演示</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/> <script language="javascript" src="ajaxpage.js"></script> <div id="result"> <?php $terry=mysql_connect("localhost","root","mindy")or die("连接数据库失败:".mysql_error()); mysql_select_db("page",$terry); mysql_query("set NAMES 'gb2312'"); $result=mysql_query("select * from tb_user"); $total=mysql_num_rows($result) or die(mysql_error()); $page=isset($_GET['page'])?intval($_GET['page']):1; $page_size=4; $url='index.php'; $pagenum=ceil($total/$page_size); $page=min($pagenum,$page); $prepage=$page-1; $nextpage=($page==$pagenum?0:$page+1); $pageset=($page-1)*$page_size; $pagenav=''; $pagenav.="显示第<font color='red'>".($total?($pageset+1):0)."-".min($pageset+5,$total)."</font>记录 共<b><font color='yellow'>".$total."</font></b>条记录 现在是第 <b><font color='blue'>".$page."</font></b> 页 "; if($page<=1) $pagenav.="<a style=cursor:not-allowed;>首页</a> "; else $pagenav.="<a onclick=javascript:dopage('result','$url?page=1') style=cursor:pointer;>首页</a> "; if($prepage) $pagenav.="<a onclick=javascript:dopage('result','$url?page=$prepage') style=cursor:pointer;>上一页</a> "; else $pagenav.="<a style=cursor:not-allowed;>上一页</a> "; if($nextpage) $pagenav.="<a onclick=javascript:dopage('result','$url?page=$nextpage') style=cursor:pointer;>下一页</a> "; else $pagenav.="<a style=cursor:not-allowed;>下一页</a> "; if($pagenum) $pagenav.="<a onclick=javascript:dopage('result','$url?page=$pagenum') style=cursor:pointer;>尾页</a> "; else $pagenav.="<a style=cursor:not-allowed;>尾页</a> "; $pagenav.="共".$pagenum."页"; if($page>$pagenum){ echo "error:没有此页".$page; exit(); } ?> <table align="center" border="2" width="300"> <tr bgcolor="#cccccc" align="center"> <td>用户名</td> <td>用户密码</td> </tr> <?php $info=mysql_query("select * from tb_user order by id desc limit $pageset,$page_size"); while($array=mysql_fetch_array($info)){ ?> <tr align="center"> <td><?php echo $array['id'];?></td> <td><?php echo $array['username'];?></td> </tr> <?php } ?> </table> <?php echo "<p align=center>$pagenav</p>"; ?> </div>
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> var http_request=false; function send_request(url){//初期化、処理関数の指定、リクエストを送信する関数 http_request=false; // XMLHttpRequest オブジェクトの初期化を開始します if(window.XMLHttpRequest){//Mozilla ブラウザ http_request=新しい XMLHttpRequest(); if(http_request.overrideMimeType){//MIME カテゴリを設定します http_request.overrideMimeType("text/xml"); } } else if(window.ActiveXObject){//IE ブラウザ 試す{ http_request=new ActiveXObject("Msxml2.XMLHttp"); }キャッチ(e){ 試す{ http_request=new ActiveXobject("Microsoft.XMLHttp"); }キャッチ(e){} } } if(!http_request){//例外、オブジェクト インスタンスの作成に失敗しました window.alert("XMLHttp オブジェクトの作成に失敗しました!"); false を返します。 } http_request.onreadystatechange=プロセスリクエスト; //リクエストメソッド、URL、次のコードを同期的に実行するかどうかを決定する http_request.open("GET",url,true); http_request.send(null); } //返された情報を処理する関数 関数 processrequest(){ if(http_request.readyState==4){// オブジェクトのステータスを確認します if(http_request.status==200){//情報が正常に返されました。情報の処理を開始します。 document.getElementById(reobj).innerHTML=http_request.responseText; } else{//ページが異常です alert("要求したページは正常ではありません!"); } } } 関数 dopage(obj,url){ document.getElementById(obj).innerHTML="データを読み取り中..."; reobj = オブジェクト; send_request(url); } <div class="clear"></div>