ajax请求中URL和参数的编码问题

1、html的charset标签:

charset 属性是 HTML5 中的新属性,且替换了:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

仍然允许使用 http-equiv 属性来规定字符集,但是使用新方法可以减少代码量。

HTML5使用“<meta charset="UTF-8">”来表示页面使用UTF-8编码

HTML中使用“<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">”来表示页面使用UTF-8编码


2、Ajax请求:URL、POST请求表单参数、URL中GET请求参数的编码


经自己测试发现:
在IE11、Firefox(48.0.2)、chrome(45.0.2454.101 m)测试,上面的编码取决于网页的编码类型(也就是charset标签中所设置的编码,如果没有设置charset编码,那么默认为系统的编码类型)
自己查阅了资料测试结果和网上资料有些不一样,有可能是浏览器的版本导致的。
资料上说:ajax请求中URL编码与浏览器类型有关(网上文章);post请求参数由于是在http请求中的body部分,所以其参数编码取决于网页的编码(书中)。两者说法产生了冲突,可能与作者所处的时间点不一致,导致浏览器的版本不一致,所以会有冲突。
网上有文章建议:使用javaScript内置的函数对URL重新编码


参考资料:

《深入分析JavaWeb技术内幕》

关于URL编码(针对URL含有中文的参数---http://www.cnblogs.com/kenshinobiy/p/4377365.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值