`

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

阅读更多
一 参考书
1  js编码http://blog.csdn.net/cnartstorm/archive/2009/06/23/4292460.aspx
2 js 解决中文乱码函数-js中escape,encodeURI,encodeURIComponent三个函数的区别
  http://blog.csdn.net/renhui15688/archive/2009/01/06/3710569.aspx
二 各函数说明
js对文字进行url编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

A:  escape(String)

escape函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。
返回值:已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。
说明:方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。提示和注释
提示:可以使用 unescape() 对 escape() 编码的字符串进行解码。
注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。

B:encodeURI(string)

定义:把字符串作为 URI 进行编码
返回值: URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
说明: 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#
提示和注释: 提示:如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。

C:encodeURIComponent

返回值:URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
说明:该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。
提示和注释:
提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此

encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号.

三 示例
工程,JSP页面编码使用UTF-8时,用js中的方法escape('中')进行编码,在java中要用EscapeUnescape.java进行解码,见附件,另外上传了,html,css3,W3school文档及编码的js文件,JS编码.zip
分享到:
评论
1 楼 czciou 2013-08-01  
    谢谢!!!找到了我要的东西.

相关推荐

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

    `escape()`函数是JavaScript中较早出现的一种URL编码方式。它会将字符串转换成适用于URL的部分Unicode编码形式。例如: ```javascript console.log(escape("春天")); // 输出:%u6625%u8282 ``` 可以看到,`escape...

    javascript 字符 Escape,encodeURI,encodeURIComponent

    然而,`escape()`并不推荐用于URL编码,因为它的编码方式并不符合现代Web标准。在需要编码URI时,更常使用`encodeURI()`和`encodeURIComponent()`。 `encodeURI()`方法是JavaScript 1.5引入的,它的主要目的是对URI...

    javascript url几种编码方式详解

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

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

    默认情况下,URL使用UTF-8编码,但不同环境可能有不同的默认编码方式,这可能导致乱码。 1. **JavaScript编码与解码**: - `escape()` 方法:它将非ASCII字符转换为%xx格式,但并不直接适用于URL编码,因为它不会...

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

    - **Unicode字符的编码方式**:`encodeURIComponent()`比`encodeURI()`对Unicode字符的处理更全面,可以编码更多的Unicode字符。 - **适用场合不同**:`encodeURIComponent()`常用于编码URL查询参数,`encodeURI()`...

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

    `escape()`方法将所有非ASCII码的字符进行转码,但是它并不编码URI的特殊字符,且对中文字符的编码方式与其他两个方法不同。 总结来说,选择合适的方法进行字符串编码取决于你的具体需求。如果需要编码整个URI,...

    js编码之encodeURIComponent使用介绍(asp,php)

    `encodeURI`函数是一种更为通用的编码方式,它提供了比`escape`更广泛的字符编码支持。`encodeURI`函数不会对ASCII字母、数字、`- _ ! # $ & ' ( ) * + , - . / : ; = ? @ ~`这82个字符进行编码,但是会将其它非英语...

    javascript 三种编解码方式

    编码和解码操作主要涉及三对函数:escape与unescape、encodeURI与decodeURI、encodeURIComponent与decodeURIComponent。下面详细解释每一对函数的功能及使用场景。 1. escape函数与unescape函数 escape函数用于对...

    详谈js对url进行编码和解码(三种方式的区别)

    在JavaScript中,有三种主要的函数可以完成URL的编码和解码操作:escape(), encodeURI(), 和encodeURIComponent()。 escape() 函数是最古老的一种编码方式,尽管现在不推荐使用,但由于历史原因仍在一些地方使用。...

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

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

    url 编码 js url传参中文乱码解决方案

    此外,escape、encodeURI、encodeURIComponent这些方法在JavaScript中的兼容性和使用时机也有区别。escape方法是最早引入JavaScript的,适用于较早版本,而encodeURI和encodeURIComponent是1.5版本之后引入的。在...

    js中unicode转码方法详解.docx

    JavaScript(简称JS)是一种广泛用于前端开发的轻量级脚本语言,它处理字符串时经常需要进行Unicode编码和解码。Unicode是一种国际标准,旨在表示世界上几乎所有的字符和符号,确保在不同系统间数据的兼容性。在JS中...

    JavaScript、C# URL编码、解码总结

    此外,JavaScript中还有 `escape()` 和 `unescape()` 函数,但它们在ECMAScript v3之后不推荐使用,因为它们的转义序列处理方式可能导致问题。 在C#中,URL编码主要涉及 `System.Web` 命名空间下的几个方法: 1. `...

    JS对URL字符串进行编码/解码分析

    虽然escape()、encodeURI()、encodeURIComponent()三种方法都能对一些影响URL完整性的特殊 字符进行过滤。但后两者是将字符串转换为UTF-8的方式来传输,解决了页面编码不一至导致的乱码问 题。例如:发送页与接受页...

Global site tag (gtag.js) - Google Analytics