`
rain_2372
  • 浏览: 680720 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • java
Web 
阅读更多
虽然escape()、encodeURI()、encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤。但后两者是将字符串转换为UTF-8的方式来传输,解决了页面编码不一至导致的乱码问题。例如:发送页与接受页的编码格式(Charset)不一致(假设发送页面是GB2312而接收页面编码是UTF-8),使用escape()转换传输中文字串就会出现乱码问题。

以下是JS下对URL进行编/解码的各种方法:

escape 方法:返回一个可在所有计算机上读取的编码 String 对象。
function escape(charString : String) : String
不会被此方法编码的字符: @ * / +
说明:escape 方法返回一个包含 charstring 内容的字符串值(Unicode 格式)。所有空格、标点、重音符号以及任何其他非 ASCII 字符都用 %xx 编码替换,其中 xx 等于表示该字符的十六进制数。
例如,空格返回为“%20”。(字符值大于 255 的字符以 %uxxxx 格式存储。)
注意:escape 方法不能用来对“统一资源标识符”(URI) 进行编码。对其编码应使用 encodeURI 和 encodeURIComponent 方法。

encodeURI 方法:返回编码为有效的统一资源标识符 (URI) 的字符串。
function encodeURI(URIString : String) : String
不会被此方法编码的字符:! @ # $ &   * ( ) = : / ; ? + '
说明:encodeURI 方法返回一个已编码的 URI。如果将编码结果传递给 decodeURI,则将返回初始的字符串。encodeURI 不对下列字符进行编码:“:”、“/”、“;”和“?”。请使用 encodeURIComponent 对这些字符进行编码。

encodeURIComponent 方法:返回编码为统一资源标识符 (URI) 的有效组件的字符串。
function encodeURIComponent(encodedURIString : String) : String
不会被此方法编码的字符:! * ( ) '
说明:encodeURIComponent 方法返回一个已编码的 URI。如果将编码结果传递给decodeURIComponent,则将返回初始的字符串。因为 encodeURIComponent 方法将对所有字符编码,请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,则其中的斜杠也将被编码,这样,当该字符串作为请求发送到 Web 服务器时它将是无效的。如果字符串中包含多个 URI 组件,请使用 encodeURI 方法进行编码。

unescape 方法:从用 escape 方法编码的 String 对象中返回已解码的字符串。
function unescape(charString : String) : String
说明:unescape 方法返回一个包含 charstring 内容的字符串值。所有以 %xx 十六进制形式编码的字符都用 ASCII 字符集当中等效的字符代替。(以 %uxxxx 格式(Unicode 字符)编码的字符用十六进制编码 xxxx 的 Unicode 字符代替。)
注意:unescape 方法不应用于解码“统一资源标识符”(URI)。请改用 decodeURI 和 decodeURIComponent 方法。

decodeURI 方法:返回一个已编码的统一资源标识符 (URI) 的非编码形式。
function decodeURI(URIstring : String) : String
decodeURIComponent 方法:返回统一资源标识符 (URI) 的一个已编码组件的非编码形式。
function decodeURIComponent(encodedURIString : String) : String

BTW:C#中对URL编码的方法。。。
编码:Server.UrlEncode(string)
解码:Server.UrlDecode(string) 

前面介绍的三种客户端编码方式,都可以用 Server.UrlDecode(string)   方法在后台解码。

在后台用 Server.UrlEncode(string) 方法编码的字符,可以在客户端用unescape(decodeURI(ec)) 方法进行解码。
分享到:
评论

相关推荐

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

    虽然escape()、encodeURI()、encodeURIComponent()三种方法都能... 以下是JS下对URL进行编/解码的各种方法: escape 方法:返回一个可在所有计算机上读取的编码 String 对象。 function escape(charString : String) :

    16进制转字符串,URL解码

    在IT领域,16进制(Hexadecimal)与字符串之间的转换以及URL编码和解码是常见的数据处理操作。这些操作通常涉及到数据传输、网络通信、编程语言中的数据表示以及文本处理等多个方面。以下是对这两个主题的详细解释:...

    javascript 对url编码 解码

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

    JS实现URL编码转换中文

    - **解码规则**:接收方接收到编码后的字符串后,需要对其进行解码,以便正确显示或处理这些特殊字符。 #### 二、JavaScript中URL编码与解码的方法 在JavaScript中,提供了`encodeURIComponent`和`...

    URL解码-编码器URL解码-编码器

    当URL包含不能直接包含在URL字符串中的字符时,就需要进行编码。 **URL编码原理** URL编码遵循一个简单的规则:对URL中的每个非字母数字字符(除ASCII字符集中A-Z、a-z、0-9、'-'、'.'、'_'、'~'外的字符),使用%...

    纯Javascript脚本实现GBK URL编解码

    2. **URL编码**:JavaScript的`encodeURIComponent`函数可以对字符串进行URL编码,但默认它只处理UTF-8编码。为了GBK编码的字符串能正确编码,需要先将GBK编码后的字节序列转换为 `%xx` 形式,这可以通过遍历字节...

    字符串的encode/escape

    字符串`escape`通常指的是对特殊字符进行转义,使其能够在特定上下文中正确解析。在编程语言中,例如JavaScript、Python或Java,有一些字符具有特殊含义,如`"`, `\`, `\n`, `\r`等。为了避免这些字符被解释为特殊...

    js对字符串进行编码的方法总结(推荐)

    在用javascript对URL字符串进行编码中,虽然escape()、encodeURI()、encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤。 但后两者是将字符串转换为UTF-8的方式来传输,解决了页面编码不一至...

    url编码解码源代码

    2. `decode_url`: 这个方法则负责将已编码的URL字符串转换回原始形式。它会查找所有`%`开头的序列,将其转换回相应的字符。这个过程涉及将两位十六进制数转换为十进制,然后找到对应的ASCII字符。 3. 可能还会有...

    js对图片base64编码字符串进行解码并输出图像示例

    标题“js对图片base64编码字符串进行解码并输出图像示例”和描述“主要介绍了js对图片base64编码字符串进行解码并输出图像的具体实现,大家可以参考下面的示例”揭示了文章的核心内容是关于在JavaScript中将图片的...

    URL编码解码器

    在"URL编码解码器"中,用户可以输入已编码的URL字符串,工具会将其解码回原始形式。同样,如果输入的是未编码的字符串,工具则会将其编码为适合在URL中使用的格式。这对于开发者调试HTTP请求、构建动态链接或处理...

    jquery base64编码解码插件

    `jquery.base64.js`就是这样一个jQuery插件,它提供了方便的API来实现字符串的Base64编码和解码操作,使得在JavaScript环境中处理Base64更加便捷。 Base64编码是一种将任意二进制数据转换为可打印ASCII字符的编码...

    javascript 编码解码(只针对英文字符)

    JavaScript是一种广泛应用于Web开发的脚本语言,它在处理字符串编码和解码方面扮演着重要角色,特别是对于只涉及英文字符的情况。在这个话题中,我们将深入探讨JavaScript如何处理ASCII编码和解码,以及一些常见的...

    urlcode解码-HTTP:URL编码解码

    然而,需要注意的是,URL编码不应用于整个URL,而只是应用于查询字符串部分(即URL中"?"之后的部分)。对于URL的路径部分,只有特定的字符(如斜杠"/")才需要编码。另外,虽然在大多数情况下,URL编码遵循ASCII标准...

    codeURL编码解码工具

    在IT行业中,URL编码与解码是网络编程中不可或缺的一部分,尤其在处理HTTP请求和URL字符串时显得尤为重要。本文将详细讲解"codeURL编码解码工具"的相关知识点,包括URL编码的原理、用途以及如何使用这类工具进行编码...

    利用JS把URL地址栏%20、%55之类编码转成中文字符

    本文将深入探讨如何使用JavaScript(简称JS)来解码这些URL编码,使其转换回原本的中文或其他非英文字符。 ### URL编码与解码原理 URL编码的主要目的是确保URL中的所有字符都能在网络上传输,避免因特殊字符导致的...

    Base62 Encode/Decode Utility:用于对base62进行编码/解码的工具-开源

    chewingum软件包包含两个主要程序:-base62-chew它们已在perl中实现。 Base62也已经用c ++编码。... 如果您使用base62 <2> = 2.0.0对其进行解码。 2.0.1版本有一个新的咀嚼算法,我们有一个compat标志

    java net unicode / native2ascii / url decode / url encode / UTF8 / js url code

    因此,我们需要使用 `URLEncoder.encode()` 对URL进行编码,将特殊字符替换为 `%xx` 的形式,然后在服务器端使用 `URLDecoder.decode()` 进行解码,恢复原始字符串。 4. **UTF-8**:UTF-8是一种常用的Unicode编码...

    javascript编码与解码

    对于编码,JavaScript提供了`TextEncoder` API,可以将字符串编码为ArrayBuffer,适用于向服务器发送数据。例如: ```javascript const encoder = new TextEncoder(); const encodedArrayBuffer = encoder.encode('...

Global site tag (gtag.js) - Google Analytics