URL编码

0X01 网址中有汉字

URL http://zh.wikipedia.org/wiki/春节

IE8、FireFox

http://zh.wikipedia.org/wiki/%E6%98%A5%E8%8A%82

网址路径的编码,用的是utf-8编码

0X02 查询字符串中有汉字

URL http://www.baidu.com/s?wd=春节

IE8

B4 BA BD DA----GB2312编码

FireFox

%B4%BA%BD%DA----GB2312编码,在每个字节前加了%

查询字符串的编码,用的是操作系统的默认编码

0X03 方法中有汉字

在已打开的网页上,直接用Get或Post方法发出HTTP请求

百度

http://www.baidu.com/s?wd=%B4%BA%BD%DA----GB2312编码

谷歌

http://www.google.com/search?s=%E6%98%A5%E8%8A%82----utf-8编码

GET和POST方法的编码,用的是网页的编码
关键在于Accept—Charset的内容是GB2312还是UTF-8

0x04 Ajax调用的URL中有汉字

url = url + "?q=" +document.myform.elements[0].value; 
// 假定用户在表单中提交的值是"春节"这两个字
http_request.open('GET', url, true);

IE

q=%B4%BA%BD%DA----GB2312编码

FireFox

q=%E6%98%A5%E8%8A%82----utf-8编码

在Ajax调用中,IE总是采用GB2312编码(操作系统的默认编码),而Firefox总是采用utf-8编码

0X05 Javascript中的编码函数

Escape函数

js中编码函数中最古老的一个,Escape不能直接用于URL编码,它会返回一个字符的Unicode编码值。
需要注意的是

1、Js函数的输入和输出,默认都是Unicode字符.
2、Escape函数不对+进行编码,服务器会认为是空格(表单提交时,会将空格转换成+)
3、现在基本不提倡使用

>javascript:escape("春节")
<"%u6625%u8282"

对应的解码函数是Unescape

EncodeURI函数

EncodeURI()是Javascript中真正用来对URL编码的函数。

EncodeURIComponet函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于URL编码 一、问题的由来 URL就是网址,只要上网,就一定会用到。 一般来说,URL只能使用英文字母、阿拉伯...
    奶茶007阅读 452评论 0 1
  • URL是Universal Resource Locator的简称,翻译过来那就是统一资源定位符,好吧,我们经常会...
    __七把刀__阅读 3,598评论 0 3
  • 我从心脏开始腐化 直到我完全死亡 明年的春日 我又将重生 活过一个世纪 再次把世间爱恋 ——...
    龙子云阅读 164评论 0 0
  • 全能自恋,就是一个人觉得自己是“神”,“神”一动念头,外部世界就会按照自己的意愿给予回应;如果外部世界不按...
    鲍弘军阅读 704评论 0 0