`

Js下对URL字符串的编码与解码

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)

分享到:
评论

相关推荐

    纯Javascript脚本实现GBK URL编解码

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

    16进制转字符串,URL解码

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

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

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

    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、'-'、'.'、'_'、'~'外的字符),使用%...

    url编码解码源代码

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

    URL编码解码器

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

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

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

    javascript编码与解码

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

    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中的所有字符都能在网络上传输,避免因特殊字符导致的...

    一个简单url编码解码

    这个名为“一个简单url编码解码”的项目,就是为新手提供了一个理解和实践URL编码与解码机制的实例。 URL编码是根据RFC 3986标准进行的,主要使用百分号(%)表示非ASCII字符或特殊字符的ASCII十六进制值。例如,...

    js解码 、java编码

    `btoa()`则相反,将二进制数据或非URL安全的字符串转换为Base64编码。然而,需要注意的是,`atob()`方法不能处理包含非ASCII字符的Base64字符串,因此在处理国际化内容时,可能需要使用第三方库,如`base-64`。 接...

    jsurl传值java页面url传值中文编码&解码共2页

    本主题将深入探讨“jsurl传值”与“java页面url传值中文编码&解码”的相关知识点。 首先,我们要了解URL编码。URL编码是根据RFC3986标准,对URL中的特殊字符进行转换,以避免与URL语法产生冲突。在JavaScript中,...

    URL编码解码工具 反向分析URL地址

    3. **解码过程**:相反,URL解码就是将编码后的字符串恢复为原始形式。解码时,找到所有形如"%xy"的序列,将其转换为对应的ASCII字符或非ASCII字符。 4. **工具使用**:"URL编码解码工具.exe" 是一款实用的小程序,...

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

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

    node-iconv-urlencode:用于将 url 编码的字符串编码和解码为每种可能编码的节点包

    iconv-urlencode 用于编码和解码来自/到每种可能编码的 url 编码字符串的节点包这个包使用iconv-lite进行不同字符集的编码。 因此,此包支持的所有编码都可以在这里使用。 转换后的字符串根据 HTML5 规范进行 url ...

Global site tag (gtag.js) - Google Analytics