浏览器发送URL的编码特性

发布时间:2014-10-22 14:24:34编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"浏览器发送URL的编码特性",主要涉及到浏览器发送URL的编码特性方面的内容,对于浏览器发送URL的编码特性感兴趣的同学可以参考一下。

浏览器发送URL的编码特性 尽管有很多规范URL的标准,例如RFC 3987,但实际应用中却非常混乱。本文主要介绍浏览器发送URL到服务器的一些特性,作为开发和应用的参考。 通常浏览器会用两种编码方式发送URL到服务器,分别是UTF-8和ANSI(当前系统语言设置,在Windows系统中可以理解为当前代码页)。接下来分别介绍几种常用浏览器发送URL的编码特性。   一、直接在地址栏输入URL的情况 中文Windows环境下,假如直接在浏览器的地址栏输入URL: http://www.charset.cn/中国.html?kw=中国 1、IE浏览器特性 PATH部分 参数部分 UTF-8模式(默认) %E4%B8%AD%E5%9B%BD.html kw=中国   UTF-8编码、urlencode GBK编码、无urlencode ANSI模式 中国.html kw=中国   GBK编码、无urlencode GBK编码、无urlencode 中文Windows环境下,IE中默认发送的URL的PATH部分是UTF-8编码,参数部分是GBK编码。IE的设置选项中有一项是“总是以 UTF-8 发送URL”可以改变发送URL的编码为ANSI。 2、FireFox浏览器特性 PATH部分 参数部分 UTF-8模式 %E4%B8%AD%E5%9B%BD.html kw=%E4%B8%AD%E5%9B%BD   UTF-8编码、urlencode UTF-8编码、urlencode ANSI模式(默认) %D6%D0%B9%FA.html kw=%D6%D0%B9%FA   GBK编码、urlencode GBK编码、urlencode 中文Windows环境下FireFox中默认发送的URL的PATH和参数都是GBK编码,在FireFox地址栏输入“about:config”,找到选项“network.standard-url.encode-utf8”,即可改变发送URL的编码方式。 3、Opera浏览器特性 PATH部分 参数部分 UTF-8模式(默认) %E4%B8%AD%E5%9B%BD.html kw=%E4%B8%AD%E5%9B%BD   UTF-8编码、urlencode UTF-8编码、urlencode   在地址栏的url编码中,空格被编码为%20,+号不变。   二、来自网页中的链接 在不同的浏览器中打开不同编码的网页中的链接,特性也不相同。在不改变浏览器默认选项情况下访问不同编码的网页中以下链接: http://www.charset.cn/中国.html?kw=中国   IE浏览器特性 PATH部分 参数部分 UTF-8网页 %E4%B8%AD%E5%9B%BD.html kw=中国   UTF-8编码、urlencode UTF-8编码、无urlencode GBK网页 %E4%B8%AD%E5%9B%BD.html kw=中国   UTF-8编码、urlencode GBK编码、无urlencode   FireFox?浏览器特性 PATH部分 参数部分 UTF-8网页 %E4%B8%AD%E5%9B%BD.html kw=%E4%B8%AD%E5%9B%BD   UTF-8编码、urlencode UTF-8编码、urlencode GBK网页 %D6%D0%B9%FA.html kw=%D6%D0%B9%FA   GBK编码、urlencode GBK编码、urlencode 如果改变IE默认选项为ANSI模式或者将FireFox改为UTF-8模式的访问结果可以自己测试。   三、来自js的ajax请求 ajax的GET请求在IE下不管页面是什么编码,发送的都是GBK编码(本地编码,无urlencode)。 在firefox中发送的情况,按照页面编码进行发送,并且有urlencode。   四、来自网页表单提交的数据 表单get请求,按照页面编码,urlencode 在表单的get请求url编码中,空格被编码为+,+号编码为%2B 几点说明: 对于开发人员而言,一定要考虑到不同环境下URL编码的不同,才能实现系统更好的兼容性。兼容性好的系统必须要能够识别来自客户端URL的编码,才能正确处理。 例如在Opera浏览器地址栏直接输入“http://www.baidu.com/s?wd=我们”,就会发现不能正确访问。 不同的WEB服务器对各种编码的URL处理也不相同,尽量不要使用中文字符作文件名。 如果写入网页中的链接包括中文字符,最好使用urlencode处理,才能和当前网页编码无关。否则有可能不能正确访问。 很多情况下浏览器的地址栏看到URL并不等同于发送到服务器的URL。要正确查看浏览器发送的到服务器URL,最好借助一些工具分析HTTP的请求头。


上一篇:Rightmost Digit HDU 1061
下一篇:DELPHI笔记

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款