ajax+php中文乱码解决办法

上一篇 / 下一篇  2008-03-07 15:55:30 / 个人分类:LAMP

C:cA$rhkJu [ u6D0AJAX乱码的出现在的原因由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码。而当在获取页面时的XMLHttp返回的是utf-8编码,这就造成了显示产生乱码。木铎校园 BBS 社区d(U9V&?h3i |6z;NT
解决方法之一就是在PHP文件中显示声明为GB2312
木铎校园 BBS 社区0v,}z o'P

~,_8_pI0header("Content-Type:text/html;charset=GB2312");木铎校园 BBS 社区,?ux I!w_;\

AS`+Z0O[7c*I7VQ0而对于发送到服务器的中文进行转码。木铎校园 BBS 社区p@)m/_jur7||
如下
3f7@&y+Q,D0$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);木铎校园 BBS 社区iIb1y%Eh'}U0e
因而这样可以解决乱码问题

0f@r1\_-T$h7v0

8o,Vtx"n"r#P0方法二,是都采用UTF-8编码。这里就不多说了

a5u?p T}7[0木铎校园 BBS 社区?3aRr+h

附测试例程
.Z@t d5]3R`0客户端

*c\Jm2h"t0

j R+B,~)zM0
0r6`\({%DQ0<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">木铎校园 BBS 社区O4JIEy5n M
<html>木铎校园 BBS 社区`G9d0K3E.r(h5kZ
<head>
,_ T;~0cJk E#q0<meta http-equiv="Content-Type" content="text/html; charset=gb2312">木铎校园 BBS 社区K D$I byD-cYs
<title>ajax post test 网络大本营 Http://www.QQView.com</title>木铎校园 BBS 社区cNAA:s$uE)R
</head>
7Mz:d4^)cn0<body>
!Z i2br~ Lx0<div id="msg"></div>
uD2cd+y}5X W0<script language="javascript">木铎校园 BBS 社区7_E4?3u#R5N*J:kA
/**
1EB!g"J7v0Ps+s1W&x&v0* 初始化一个xmlhttp对象木铎校园 BBS 社区G2\}KK9^,d5Z
*/
.I.R T C-[g0function InitAjax()木铎校园 BBS 社区? kIqn6H8n0N(i
{
Z&Xc;p9k0 var ajax=false;木铎校园 BBS 社区X xjiJ
 try {
*[k:E"{[#\%V GBKW0  ajax = new ActiveXObject("Msxml2.XMLHTTP");木铎校园 BBS 社区D%|kAZ's+~ND
 } catch (e) {
D] qD @ |.o7[2g;E0  try {
S5lo9U@'K\0   ajax = new ActiveXObject("Microsoft.XMLHTTP");木铎校园 BBS 社区4u/Pq i5BR8O3nl
  } catch (E) {
\K1m}^ N5@}0   ajax = false;
u;jGZr/`Um0  }木铎校园 BBS 社区'|:Q0pj t V*d \7U
 }
1GCD6_,GHv/p YZ0 if (!ajax && typeof XMLHttpRequest!='undefined') {木铎校园 BBS 社区8Ge5VB^8i
  ajax = new XMLHttpRequest();木铎校园 BBS 社区_~5Y'oPR*{!g
 }
Omm A}0 return ajax;木铎校园 BBS 社区f]T!i^)prQ*K
}木铎校园 BBS 社区 iY4RB6s*d
//在form 测试页面内有一个表单,一个显示的层木铎校园 BBS 社区 @*a4s AV*h
function sendData()木铎校园 BBS 社区5Q.a5A1b&l5r[0~/_~9d
{
!})G{:~Dx*d;S&fm5NY0 var msg=document.getElementById("msg");木铎校园 BBS 社区 z ~sZ X;Cr8^
 var f=document.form1;
`^!x VyK-euz{H9A0 var c=f.content.value;
,r2}5HEd&H4_Cc0 //接收数据的URL木铎校园 BBS 社区$r)qz!B5G5Xf&]
 var url="dispmsg.php";
U vH6SgS0 var poststr="content="+c;木铎校园 BBS 社区$U;Z1Uz e6~:AJ-T
 var ajax=InitAjax();
h8X1l^y4R'Q3B)g0 ajax.open("POST",url,true);木铎校园 BBS 社区gvu,{_nB#P
 ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ZF*sq;hS1`;u`_0 ajax.send(poststr);
X)NPKO,c/hSR%X0 ajax.onreadystatechange=function(){
_7n/Z)xT;K{1yF0  if(ajax.readyState==4 && ajax.status==200){
'D&a*^H^~Is0  alert("I got something");
gGt WL7o\5?0   msg.innerHTML=ajax.responseText;
5}-Nq b#mE1R)k:o0  }
W[4S2FiTB[0 }木铎校园 BBS 社区l4t3T5E~q
}

U7Nph AgN Wf0

y xn'BC0</script>木铎校园 BBS 社区tn5z"^ c%b4sp

木铎校园 BBS 社区'q-j"nUVu

<form name='form1'>木铎校园 BBS 社区vc,PP l#]
<input type="text" name='content' size=10>木铎校园 BBS 社区8b,w$Wo p E6E
<input type="button" value="确定" onclick="sendData()"><!--我用submit时就出错-->木铎校园 BBS 社区M t.d)O$_Wh
</form>木铎校园 BBS 社区$mDK;@6M5{6q3r*px
</body>
[5x[Ce:w&`0</html>

AOKub)gal-`0木铎校园 BBS 社区:hZp(b K@FF
木铎校园 BBS 社区Jnq6}/Sc

服务器端木铎校园 BBS 社区)~mZ?.L7E?)\
<?php
o%|Hl_;X#_J_0header("Content-Type:text/html;charset=GB2312");
{&}UW [ L U9B0if($_POST['content'])木铎校园 BBS 社区(IH!d-G[9a{d
{木铎校园 BBS 社区9K3sL1qm8`
 $_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);木铎校园 BBS 社区5\6d,@0fq$fk$J
 print("内容是".$_POST['content']);
]\bK;mx t0}
b:q$w2\Nb1a0else
7L5XjBnOOA0{木铎校园 BBS 社区;p;e2Z`5@Q*S
 print("没有内容发送");
CrI;t,RUp0}木铎校园 BBS 社区&v O_EpJ ?
?>

#QHW/U)~#W0

TAG: ajax php 乱码 中文 办法

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

关于作者