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 社区,?uxI!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
因而这样可以解决乱码问题
8o,Vtx"n"r#P0方法二,是都采用UTF-8编码。这里就不多说了
a5u?p T}7[0木铎校园 BBS 社区?3aRr+h附测试例程
.Z@td5]3R`0客户端
j R+B,~)zM0
0r6`\({%DQ0<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">木铎校园 BBS 社区O4JIEy5n M
<html>木铎校园 BBS 社区`G9d0K3E.r(h5k Z
<head>
,_ T;~0cJk E#q0<meta http-equiv="Content-Type" content="text/html; charset=gb2312">木铎校园 BBS 社区KD$I byD-cYs
<title>ajax post test 网络大本营 Http://www.QQView.com</title>木铎校园 BBS 社区cNAA:s$uE)R
</head>
7Mz:d4^)cn0<body>
!Zi2br~Lx0<div id="msg"></div>
uD2cd+y}5XW0<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"{[#\%VGBKW0 ajax = new ActiveXObject("Msxml2.XMLHTTP");木铎校园 BBS 社区D%|kAZ's+~ND
} catch (e) {
D]qD @ |.o7[[ d2g;E0 try {
S5lo9U@'K\0 ajax = new ActiveXObject("Microsoft.XMLHTTP");木铎校园 BBS 社区4u/Pq
i5BR8O3nl
} catch (E) {
\K1m}^
N5@}0 ajax = false;
u;jGZr/`U m0 }木铎校园 BBS 社区'|:Q0pj t V*d
\7U
}
1GCD6_,GH v/pYZ0 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;
`^!xVyK-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");
gGtWL7o\5?0 msg.innerHTML=ajax.responseText;
5}-Nq
b#mE1R)k:o0 }
W[4S2Fi TB[0 }木铎校园 BBS 社区l4t3T5E~q
}
y xn'BC0</script>木铎校园 BBS 社区tn5z"^c%b4sp
木铎校园 BBS 社区'q-j"nUVu<form name='form1'>木铎校园 BBS 社区vc,PPl#]
<input type="text" name='content' size=10>木铎校园 BBS 社区8b,w$Wo pE6E
<input type="button" value="确定" onclick="sendData()"><!--我用submit时就出错-->木铎校园 BBS 社区Mt.d)O$_Wh
</form>木铎校园 BBS 社区$mD K;@6M5{6q3r*px
</body>
[5x[Ce:w&`0</html>
木铎校园 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
?
?>
相关阅读:
- --JSP,PHP详细性能测试-- (平凡的香草, 2007-11-16)
- php 开源大全 (平凡的香草, 2007-12-09)
- 对ajax的调试 (平凡的香草, 2008-1-26)
- 支持 discuz 的web ajax 聊天系统 (平凡的香草, 2008-3-03)

