PHP ajax 传递中文乱码,ajax+php传递中文乱码解决办法
AJAX的乱码的出现在的原因
由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码。而当在获取页面时的XMLHttp返回的是utf-8编码,这就造成了显示产生乱码。
解决方法之一就是在PHP文件中显示声明为GB2312
header("Content-Type:text/html;charset=GB2312");
而对于发送到服务器的中文进行转码。
如下
$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);
因而这样可以解决乱码问题
方法二,是都采用UTF-8编码。这里就不多说了
附测试例程
客户端
ajax post test
/**
* 初始化一个xmlhttp对象
*/
function InitAjax()
{
var ajax=false;
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
ajax = false;
}
}
if (!ajax && typeof XMLHttpRequest!='undefined') {
ajax = new XMLHttpRequest();
}
return ajax;
}
//在form 测试页面内有一个表单,一个显示的层
function sendData()
{
var msg=document.getElementById("msg");
var f=document.form1;
var c=f.content.value;
//接收数据的URL
var url="dispmsg.php";
var poststr="content="+c;
var ajax=InitAjax();
ajax.open("POST",url,true);
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send(poststr);
ajax.onreadystatechange=function(){
if(ajax.readyState==4 && ajax.status==200){
alert("I got something");
msg.innerHTML=ajax.responseText;
}
}
}
服务器端
header("Content-Type:text/html;charset=GB2312");
if($_POST['content'])
{
$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);
print("内容是".$_POST['content']);
}
else
{
print("没有内容发送");
}
?>
引用自:http://www.blogjava.net/huyi2006/articles/86154.html
PHP ajax 传递中文乱码,ajax+php传递中文乱码解决办法相关推荐
- IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法
转载自 IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法 最近在测试兼容性问题的时候发现,使用Ajax的GET请求向后台获取响应结果时,如果是IE8浏览器,第一次发送请求时会得到正 ...
- 文件下载时设置文件名以及中文被转换成下划线的解决办法
文件下载时中文被转换成下划线的解决办法 先上问题 解决办法很简单,直接在返回的时候加以下代码 response.setContentType("application/force-downl ...
- 为何计算机用户名无法改回,电脑用户名为中文导致一些程序无法正常运行的解决办法,将电脑用户名的中文改为英文。...
码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. 电脑用户名为中文导致一些程序无法正常运行的解决办法.将电脑用户名的中文改为英文 ...
- VS代码中文注释下有红色波浪线解决办法
VS代码中文注释下有红色波浪线解决办法 打开VS导入代码后,发现了许多错误,一一改正后可以运行了,真的是nice !但是仔细一看,代码文件中的中文注释下面都有红色波浪线,纳,作为程序员对于红色波浪线简 ...
- 计算机超级用户名英文,电脑用户名为中文导致一些程序无法正常运行的解决办法,将电脑用户名的中文改为英文。...
码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. 电脑用户名为中文导致一些程序无法正常运行的解决办法.将电脑用户名的中文改为英文 ...
- ajax微信浏览器,jquery1.8版本使用ajax实现微信调用出现的问题分析及解决办法
先给大家说下问题背景:最近在做一个项目,开发微信的某个功能,使用的是asp.net开发,jquery1.8.0版本. 在微信中点击按钮触发事件,调用ajax与服务器端进行交互,回调函数走的是error ...
- 中文输入法不触发onkeyup事件的解决办法
2019独角兽企业重金招聘Python工程师标准>>> 这两天做一个需要实时监控文本框输入的功能,碰到了中文输入法无法触发onkeyup事件的恶心问题. 具体表现是这样的: 当监听一 ...
- source insight删除保存路径为中文的project工程项目报错的解决办法
http://blog.csdn.net/yixilee/archive/2010/09/01/5855663.aspx source insight删除已加载的project工程项目报错的解决办法 ...
- cad细等线体不显示_CAD图纸乱码、钢筋符号不显示解决办法(内含万能字体)
好课推荐: 零基础CAD:点我CAD室内:点我 周站长CAD:点我CAD机械:点我 Bim教程:点我CAD建筑:点我CAD三维:点我全屋定制:点我 ps教程:点我苹果版CAD:点我 3dmax教程:点 ...
- Linux——Ubuntu安装Fcitx以及Fcitx输入中文不显示候选词框的解决办法
一.安装Fcitx 1.安装Fcitx所需组件 $ sudo apt install fcitx fcitx-tools fcitx-config* fcitx-frontend* fcitx-mod ...
最新文章
- 磁盘调度算法java代码
- 临沧计算机教试报名,2019下半年临沧小学计算机教师资格证考什么?
- namenode启动不了以及datanode启动不了的解决办法
- XMPP聊天之Openfire 的安装和配置---Mac OS
- hive 导入hdfs数据_将数据加载或导入运行在基于HDFS的数据湖之上的Hive表中的另一种方法。
- Objective-C消息转发
- 全国计算机一级试题重难点,全国计算机等级考试一级MS选择题(重难点)部分.doc...
- android中dip、dp、px、sp和屏幕密度
- 获取Kubernetes容器上下文环境
- 网页怎么调用云服务器资源,如何将网页资源放到云服务器
- python加载mnist数据集
- 大转盘抽奖小程序源码
- linux sql server 迁移,SQL Server2008 实例数据迁移步骤
- 《大明王朝》掠之于官
- 华为又一重拳!迄今为止最强5G基带芯片、全球最快CPE正式发布!...
- C语言八行杨辉三角空格数,C语言 杨辉三角
- Mac下安装cordova-hot-code-push-cli失败
- fgetc和方fread读不到文件末尾出现ffffff或0时解决方法
- 分区变成RAW格式,万幸恢复出数据
- k8s暴露端口的方式