标题:ajax发送特殊字符的问题
只看楼主
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
结帖率:100%
已结贴  问题点数:20 回复次数:5 
ajax发送特殊字符的问题
用ajax的post提交数据时,包含的一些特殊符号。。   +  = - @ #$%^&** 等等。。  +号提交上去后,程序里接收不到真实的+号的会是一个空格。。
整站页面编码是gb2312的。。用encodeURIComponent测试了可以提交成功。。但是这个好像页面要统一是utf-8中文才不会乱码。。同时这个编码时间也比较长。。我在gb2312编码页面里使用escape编码的。。+号不编码。。
保持编码不变有什么解决办法啊。。?
搜索更多相关主题的帖子: 特殊符号 中文 时间 
2011-01-10 10:41
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
得分:0 
请问,大家是怎么处理ajax提交数据的啊?

学习编程www.
2011-01-12 12:38
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
得分:20 
gb2312里用encodeURIComponent,请问是否在后台也进行了GB2312的申明没?全部要申明,前端和后台页面都要申明,具体在百度上找一下!

不过我还是推荐使用UTF-8编码,文件本身也要保持这种编码,这样的话代码修改得少!编码风格一致,不会出现乱码!尤其是在以后做WEBSERVER的时候,进行JSON或XML编码的时候能减少不少问题。

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2011-01-12 16:47
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
得分:0 
后台文件编码也是gb2312的。。加了防缓存和  这个也加上了: response.charset = "gb2312"。。是不是指这个声明?
加了后这个用encodeURIComponent还会乱码。
encodeURIComponent  这个编码花费的时间比escape要长好多哟。。我刚在utf-8测试了中文不乱码。。现在整站是gb2312的呃。。

版主,你平时用ajax发送数据时。。页面也全部是utf-8的编码也是使用encodeURIComponent它来编码的吗?

学习编程www.
2011-01-12 17:15
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
得分:0 
如果用gb2312编码,在ASP页里好象还要加一个session.codepage="936",具体我也忘记了。多测试看看,gb2312的应该也能休整为不乱码,但是就是比UTF-8麻烦!

如果你用了gb2312,那么文件本身必须是ANSI的,如果用了UTF8编码,那么文件编码就必须是UTF-8的,如果搞错了,或者颠倒了任何一个,都必定乱码!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2011-01-13 16:06
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
得分:0 
。。明白了。。我用记事本看了全是gb2312  ANSI的。谢谢版主。。。
function addEscape(info){return escape(info.replace(/\+/gim,"+"));}
我把 + 号替换成十进制再编码终于暂时可以接收了。。

学习编程www.
2011-01-14 12:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-330883-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.091757 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved