jQuery AJAX中文乱码处理
最近工作中用jQuery ajax返回出现乱码,用的Notepad++编辑器,当JS部分传递中文时,另一页面接收的话会出现乱码,在网上找了很多方法,基本上没有很好的解决。
页面用GB2312编码,JS部分得到中文字符:var playerName=$('#playerName').val(); 可以这样处理:
在ajax代码部分:
$.ajax({
url: 'getName.php',
type: 'GET',
cache: false,
data:{
'playerName': encodeURIComponent(playerName)//解决问题的关键点
},
success:function(response){
……
}
});
这里要注意的是jQuery的ajax中处理中文是UTF-8格式,在另外一个页面可以这样处理:在文件头部加上
header("Content-type:text/html;charset:gbk");这里的gbk可以处理繁体和简体(工作需要^_^),接收name时:
$playerName=urldecode($_GET['playerName']);
$playerName=iconv('utf-8','gbk',$playerName);
当然,我的编辑器NotePad++默认编码是ANSI格式的,这个没多大影响~~。
前一周我还准备放弃Notepad++,改用Zend来开发,用了一周之后,才发现还是我的Notepad++好,怎么感觉有点“老婆还是第一任的好呢。。”有点小邪恶^^.
对了,上面jquery中ajax使设置了cache:false,这个针对IE是必须要加的,不然用了ajax,数据还是以前的,没变,IE缓存太邪恶了,亲爱的firefox就不会出现这种情况^^.
还是那句话,jquery简直太强大了!