将URL编码?

标签: url 编码 | 发表时间:2013-11-06 22:31 | 作者:songkang666
出处:http://www.iteye.com
    URL一般只能由字母、数字、$ - _ . + ! * ' ( ) 等一些字符构成。那么当URL中需要用到汉字时怎么办,譬如有这样的URL: "www.test.com/search?name=张三",此时,只有通过将URL进行编码的方式进行传递了。

    Javascript编/解码方法:
1、escape    <---->    unescape
2、encodeURI    <---->    decodeURI
3、encodeURIComponent    <---->    decodeURIComponent

    如果对上面的URL(www.test.com/search?name=张三)进行编码的话。

1、escape 编码后生成:"www.test.com/search%3Fname%3D%u5F20%u4E09"
2、encodeURI 编码后生成:"www.test.com/search?name=%E5%BC%A0%E4%B8%89"
3、encodeURIComponent 编码后生成:"www.test.com%2Fsearch%3Fname%3D%E5%BC%A0%E4%B8%89"

    可以看出,三者的编码结果不尽相同,其中 escape 对除了ASCII字母、数字、标点符号 @ * _ + - . / 以外的字符进行编码,而编码生成的是Unicode编码值; encodeURI 对除了ASCII字母、数字、标点符号 @ * _ + - . / ; ? : & = + $ , # 以外的字符进行编码,而编码生成的是utf-8的编码值; encodeURIComponent 对ASCII字母、数字、标点符号 * _ + - . 以外的字符进行编码,而编码生成的是utf-8的编码值。
    三种编码方式中 escape 用的较少了,而阮一峰如是说: encodeURI 和 encodeURIComponent 之间比较大的区别是后者用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。但除了上面说的 encodeURIComponent 要比 encodeURI 编码的字符多一些,我还真没看出来他说的这个区别在哪里。要说这两种哪种较好,我个人更倾向于 encodeURI ,因为经过它编码后,我还能清楚的看出来这个 URL 带有查询条件的。所以,我需要用的时候,应该非 encodeURI 莫选了。

more:
[url=http://www.cnblogs.com/qiantuwuliang/archive/2009/07/19/1526687.html] escape()、encodeURI()、encodeURIComponent()区别详解 [/url]
[url=www.ruanyifeng.com/blog/2010/02/url_encoding.html] 关于URL编码 [/url]

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [url 编码] 推荐:

将URL编码?

- - JavaScript - Web前端 - ITeye博客
    URL一般只能由字母、数字、$ - _. * ' ( ) 等一些字符构成. 那么当URL中需要用到汉字时怎么办,譬如有这样的URL: "www.test.com/search?name=张三",此时,只有通过将URL进行编码的方式进行传递了.     Javascript编/解码方法:.     如果对上面的URL(www.test.com/search?name=张三)进行编码的话.

理清URL编码

- winners - Thinking for Fun
关于URL编码,RFC1738做了如下的规定:. “Only alphanumerics [0-9a-zA-Z], the special characters “$-_.+!*’(),” [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL.”.

Web开发:URL编码与解码

- - 搜索引擎技术博客
通常如果一样东西需要编码,说明这样东西并不适合传输. 原因多种多样,如Size过大,包含隐私数据,对于Url来说,之所以要进行编码,是因为Url中有些字符会引起歧义. 例如Url参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/s?q=abc&ie=utf-8. 如果你的value字符串中包含了=或者&,那么势必会造成接收Url的服务器解析错误,因此必须将引起歧义的&和=符号进行转义,也就是对其进行编码.

URL编码,客户端和服务器之间发生了什么

- - 崔永键的博客
要知道,其中包含两种编码,一种是字符到字符的URL编码(可以理解为仅仅是给字符换了一种字符层面上的表示形式而已,可以理解为转义),一种是字符到二进制的传统意义上我们理解的字符编码. 先来看,服务器到客户端的消息. 服务器端对HTTP头内容,首先进行URL编码,比如其中的汉字,就使用UTF8转换为对应的UTF8编码值.

URL的井号

- chenqj - 阮一峰的网络日志
一个显著变化,就是URL加入了"#!"符号. 在我印象中,这是主流网站第一次将"#"大规模用于直接与用户交互的关键URL中. 这表明井号(Hash)的作用正在被重新认识. 本文根据HttpWatch的文章,整理与井号有关的所有重要知识点. 其右面的字符,就是该位置的标识符. 就代表网页index.html的print位置.

iOS UIWebView URL拦截

- - 移动开发 - ITeye博客
本文译者: candeladiao,原文: URL filtering for UIWebView on the iPhone. 说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源.

URL最大长度问题

- - CSDN博客推荐文章
这几天为解决一个BUG头疼了一段时间,BUG现象如下:. 一个选择人员的选择控件,当选择多个人时(50多个的时候),返回没有错误现象,而再一次打开的时候就报404错误. 看到这个错误非常纳闷,无法下手,只能再一次看控件的代码,在详细看代码时,发现所有的参数都是经过URL传参的,赶紧百度一下URL参数的大小限制(从这个百度开始,我就进入一个误区:参数大小的限制).

URL中井号的作用

- - CSDN博客Web前端推荐文章
  URL中的井号(#)是比较常见的,它并不影响网址的指向,而是有众多功能和特点的. 下面就为大家介绍一些有关井号的故事.   1、页面中的某一个位置可以用井号在URL中指定.   井号作为比较长出现在URL的一种符号,通常也会代表这个页面中的某一个位置,比如:http://aoshu.juren.com/chzt/xiaoxueshijuan/index.html#nn1,此URL表示在这个页面中nn1的位置.

APP调用Custom URL Scheme

- - IT技术博客大学习
标签:   Scheme   跳转. Custom URL scheme 的好处就是,你可以在其它程序中通过这个url打开应用程序. 如A应用程序注册了一个url scheme:myApp,  那么就在mobile浏览器中就可以通过打开你的应用程序A. 首先在AndroidManifast.xml要被指定Scheme的Activity下设置如下参数.