`
peonyzzdx
  • 浏览: 587321 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

URL转码escape() encodeURI() encodeURIComponent()

    博客分类:
  • web
阅读更多
js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1.传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。                           
例如:
url:'/supervisorManage/supervisorInfoManage/dispatchSupervisorInfo.action?mode=add&supervisorName='+encodeURIComponent('监管人员')+'&population.populationType='+$("#_populationType_").val();

2、 encodeURI 着眼于对整个URL进行编码,进行url跳转时可以整体使用encodeURI
例如:Location.href="/encodeURI"("http://cang.baidu.com/do/s?word=百度&ct=21");

3、 escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值
   对 String 对象编码以便它们能在所有计算机上可读,  
    escape(charString)
    必选项charstring参数是要编码的任意String对象或文字。  
   说明
  escape方法返回一个包含了charstring内容的字符串值(Unicode格式)。所有空格、标点、重音符号以
   及 其他非ASCII字符都用%xx编码代替,其中xx等于表示该字符的十六进制数。例如,空格返回的是 "%20 "   。
字符值大于255的以%uxxxx格式存储。  
注意 :escape方法不能够用来对统一资源标示码(URI)进行编码。对其编码应使用encodeURI和encodeURIComponent 方法。

最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
0
2
分享到:
评论
1 楼 xisuchi 2012-12-25  

相关推荐

    js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解

    本文将详细介绍三个主要的编码函数:`escape()`、`encodeURI()`和`encodeURIComponent()`,以及它们之间的差异。 1. `escape()`函数: `escape()`函数的主要作用是对字符串进行编码,使得该字符串能在所有计算机上...

    java中文乱码之解决URL中文乱码问题的方法

    - **二次转码**:先使用`encodeURI()` 编码一次,再用`encodeURIComponent()` 编码一次,这样URL中的特殊字符都会被编码。在服务器端,使用`URLDecoder.decode(name, "UTF-8")` 进行解码。 2. **Java服务器端处理*...

    HTML 转码

    在JavaScript中,可以使用`encodeURI`或`encodeURIComponent`函数;在Java中,有`java.net.URLEncoder`类;在PHP中,可以使用`htmlspecialchars`函数等。这些函数和方法能帮助开发者在代码中自动处理HTML转码,确保...

    javascript url几种编码方式详解

    本文将详细讲解JavaScript中三种常见的URL编码方式:`escape()`、`encodeURI()`以及`encodeURIComponent()`。 1. `escape()` `escape()`函数最初设计是用来编码非ASCII字符的,但它并不适合直接用于URL编码。它将...

    javascript转码

    在JavaScript中,有三种主要的方法用于对字符串进行URL编码:`escape()`、`encodeURI()` 和 `encodeURIComponent()`。这三种方法虽然功能相似,但适用场景和编码规则各不相同。 #### 1. `escape()` 方法 - **定义*...

    js中unicode转码方法详解.docx

    `encodeURIComponent()`比`encodeURI()`更严格,会编码更多特殊字符,包括`#`、`?`和`&`等,常用于URL查询字符串。`decodeURIComponent()`则是对应的解码函数。 3. `escape()` 和 `unescape()`: 这两个函数是较...

    js中escape对应的C#解码函数 UrlDecode

    本文将详细探讨JavaScript中的`escape`函数及其C#对应的解码方法`System.Web.HttpUtility.UrlDecode`,同时也会讲解JavaScript中的`escape`、`encodeURI`和`encodeURIComponent`的区别以及它们的解码对应函数。...

    简单实例处理url特殊符号&处理(2种方法)

    JavaScript中有三个与编码相关的函数:`escape()`、`encodeURI()`和`encodeURIComponent()`。其中,`encodeURI()`是推荐用来编码URI的,因为它遵循UTF-8编码且不会对一些特殊字符如`!`, `@`, `#`, `$`, `&`, `*`, `...

    JS对字符串编码的几种方式使用指南

    首先,我们需要了解几个关键的字符串编码方法:`escape()`、`encodeURI()`和`encodeURIComponent()`。这三种方法虽然都用于编码字符串,但它们对字符的编码范围和目的存在差异。 1. `escape()` `escape()`方法主要...

    彻底根治Spring @ResponseBody JavaScript HTML特殊字符

    - 如果你希望在前端处理转义,可以在JavaScript中使用`encodeURI()`或`encodeURIComponent()`函数,但这不推荐,因为前端处理可能被绕过。 5. **最佳实践**: - 总是在后端进行HTML转义,以确保数据安全。 - ...

    jquery中文乱码的多种解决方法

    当使用`dataUrl`方式提交数据时(即通过字符串拼接的方式设置请求体),无论前台使用哪种编码方式(如`encodeURI`、`encodeURIComponent`或`escape`)对中文进行转码,在后台接收到的仍然是乱码。 **解决方法**: -...

Global site tag (gtag.js) - Google Analytics