`

javaScript中URL编码转换,escape() encodeURI() encodeURIC

阅读更多
javaScript中URL编码转换,escape() encodeURI() encodeURIComponent

  在使用url进行参数传递时, 经常会传递一些中文名的参数或URL地址, 在后台处理时会发生转换错误。在有些传递页面使用GB2312, 而在接收页面使用 UTF8,这样接收到的参数就可能会与原来发生不一致。 使用服务器端的urlEncode函数编码的URL, 与使用客户端javascript的 encodeURI函数编码的URL,结果就不一样。


javaScript中的编码方法:
escape() 方法:
     采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、
标点符号、特殊字符以及其他非ASCII字符都将被转化成% xx格式的字符编码(xx等于该字符 在字符集表里面的编码的16进制数字)。比如, 空格符对应的编码是%20。unescape方法与此相反。 不会被此方法编码的字符: @ * / +

encodeURI() 方法:
      把URI字符串采用UTF- 8编码格式转化成escape格式的字符串。 不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '

encodeURIComponent() 方法:
      把URI字符串采用UTF- 8编码格式转化成escape格式的字符串。 与encodeURI()相比, 这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话, 不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。不会被此方法编码的字符:! * ( )


      因 此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用 escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者 encodeURIComponent。

       另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。
分享到:
评论

相关推荐

    JS中三种编码方式(escape,encodeURI,encodeURIComponent)

    然而,`escape`并不适用于URL编码,因为它会改变URL中的某些合法字符,如空格会被转换为"+"或"%20",这可能导致解析问题。 2. `encodeURI` 函数: `encodeURI`是专为编码URI(统一资源标识符)设计的。它不会编码...

    javascript 对url编码 解码

    JavaScript 中对 URL 编码和解码涉及到六个函数:escape、encodeURI、encodeURIComponent、unescape、decodeURI 和 decodeURIComponent。这六个函数的使用场景和特点分别是: escape 函数:escape 函数用于将字符串...

    url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

    为了解决这一问题,JavaScript提供了几种不同的编码方法来处理URL中的特殊字符。本文将详细介绍`escape()`, `encodeURI()`, `encodeURIComponent()`这三个函数的功能、使用场景以及它们之间的区别。 #### 一、`...

    javaScript encodeURI中文乱码

    `encodeURI()`函数设计用于转换URL中的特殊字符,它会保留大部分字符不变,只对那些可能在传输中引起问题的字符进行编码,如空格、引号、尖括号等。然而,对于非英文字符的处理,尤其是中文字符,`encodeURI()`的...

    js的encodeUri编码转换为GBK问题

    在博文《js的encodeUri编码转换为GBK问题》中,作者可能讨论了如何实现这个转换过程。`GBKUrl.js`这个文件很可能是用来处理GBK编码到URI编码转换的工具脚本。这个脚本可能包含以下功能: 1. 使用`TextDecoder`来...

    Javascript中escape(),_encodeURI()和encodeURIComponent()之精析与比较.doc

    在JavaScript中,`escape()`, `encodeURI()`, 和 `encodeURIComponent()` 是三个常见的字符串编码函数,它们各自有独特的用途和特点。理解它们的区别对于编写健壮的JavaScript代码至关重要。 首先,`escape()` 函数...

    escape、encodeURI、encodeURIComponent 区别详解

    `escape()` 是一个用于编码 URL 字符串的方法,它会将非 ASCII 字符转换为 `%nn` 的形式(`nn` 是该字符对应的十六进制值)。需要注意的是,`escape()` 并不会对 `-_.!~*'()` 这些字符进行编码,因为这些字符被视为...

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

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

    javascript url几种编码方式详解

    2. encodeURI()是javascript中真正用来对URL编码的函数。编码整个URL地址,但对特殊含义的符号”;/?:@&=+$,#”,也不进行编码。对应的解码函数是decodeURI()。 3. encodeURIComponent()能编码”;/?:@&=+$,#”这些...

    JavaScript中URL编码函数代码

    这意味着它可能不适用于大部分URL编码场景,因为这些字符在URL中有特殊含义。 2. `encodeURI()` 方法: 相较于`escape()`,`encodeURI()`更适用于编码URI(统一资源标识符)字符串。它按照UTF-8编码格式将URI转换...

    URL编码转换,escape() encodeURI() encodeURIComponent()

    escape() 方法:采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格...

    URL传中文参数导致乱码的解决方案之encodeURI

    总的来说,处理URL中传递的中文参数时,合理使用`encodeURI`和对应的解码方法,结合理解浏览器和服务器的编码行为,是避免乱码的关键。本文提供的“前端两次encode——后端一次decode”方案,是一种兼容性好且相对...

    c#自动判断URL编码方法

    URL中包含编码的中文的时候,程序获取queryString需要根据url的不同编码,采用不同的解码方式,RequestQueryString方法能够自动识别url是用UTF-8编码还是GB2312编码,从而自动获取争取的值。 应用范例:...

    javascript中encodeURI和decodeURI方法使用介绍.docx

    - `encodeURI`不对URL中的保留字符进行编码。 - `encodeURIComponent`对所有的非保留字符进行编码,并且也对保留字符进行编码。 - 使用场景:`encodeURI`适用于整个URL的编码,而`encodeURIComponent`适用于URL的...

    易语言JS实现编码转换

    易语言JS实现编码转换源码,JS实现编码转换,decodeURI,encodeURI

    【JavaScript源代码】基于网址URL中特殊字符转义编码.docx

    【JavaScript源代码】基于网址URL中特殊字符转义编码是一个重要的概念,特别是在Web开发中,因为URL是连接互联网资源的基本途径。URL编码是确保数据在URL中正确传递的关键步骤,尤其是当URL包含特殊字符或者非ASCII...

Global site tag (gtag.js) - Google Analytics