已有40人关注
PHP中使用Ajax解决中文乱码的一点小疑问
发表在PHP图书答疑 2015-04-28
是否精华
版块置顶:
在ajax中解决中文乱码问题的时候,当ajax发送中文,php接受的时候,书上说应该在ajax中先用encodeuricomponent对要提交的中文进行编码,然后在php中添加如下代码:
$GB2312string=iconv( 'UTF-8', 'gb2312//IGNORE' , $RequestAjaxString);
PHP选择mysql数据库的时候,使用下列语句设置编码类型:
mysql_query("set names gb2312");


不是太理解道理  $RequestAjaxString和$GB2312string是什么东西呀


还有,在下一节的在php中应用ajax技术的典型应用实例里面也没有发现哪里调用了encodeuricomponent函数


encodeuricomponent是不是ajax自动调用的  开发者不用管啊


具体的:
在下一节在php中应用ajax技术的典型应用当中的第一个实例
function checkName() {
var username = form1.username.value;
if(username=="") {
window.alert("请填写用户名!");
form1.username.focus();
return false;
}
else {
createRequest('checkname.php?username='+username+'&nocache='+new Date().getTime());
}
}

因为username可能是中文,是不是最好写成createRequest('checkname.php?username='+encodeUriComponent(username)+'&nocache='+new Date().getTime())
分享到:
精彩评论 2
轻鸿_mrkj
学分:0 LV1
TA的每日心情
加油
2020-12-25 20:06:49
2015-04-28
沙发
读者您好:
Ajax技术的核心为Javascript,而Javascript使用的是UTF-8编码,因此在页面采用GBK或者其他编码,同时没有进行编码转换时,就会出现中文乱码的问题。
传递参数时使用encodeURIComponent,是为了传递的url不会被#等特殊字符截断。 
(1)RequestAjaxString是需要转换编码的字符串,$GB2312string是转换之后的。
(2)encodeURIComponent函数是需要手动调用的。
且听风沉吟
学分:0 LV1
2015-04-29
板凳
在ajax中解决中文乱码问题的时候

在后面的实例调用$GB2312string=iconv( 'UTF-8', 'gb2312//IGNORE' , $RequestAjaxString);
之前的代码我没有发现定义$RequestAjaxString;
后来的代码我也没有发现再使用$GB2312string;

这是不是系统预先定义好的变量,可以直接使用,$RequestAjaxString表示ajax向php请求的http数据,$GB2312string表示ajax向php请求的http数据编码转化后的结果
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照