`

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)

分享到:
评论

相关推荐

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

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

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

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

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

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

    如何通过JS实现转码与解码

    这篇文章主要介绍了如何通过JS实现转码与解码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 escape 和 unescape escape()不能直接用于URL编码,它的真正作用...

    ParamUtil.rar_ParamUtil_java 字符串_paramUtil.java_字符串 js

    字符串处理程序,有对字符串各种操作的方法,如:随机数发生器,左填充char,右填充char,得到语言配置,读配置文件属性值,url编码,url编码解码,html编码,sql特殊字符去除函数,字符串到js中冲突去除函数,删除...

    base64url:用于编码和解码base64url!

    base64url 往返 安装 $ npm install base64url...base64url.encode(输入:字符串|缓冲区,编码:字符串=“ utf8”):字符串 base64url编码input 。 输入应该是string或Buffer 。 例子 > base64url ( "ladies and g

    javascript URL编码和解码使用说明

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

    node.js学习之base64编码解码

    一. Base64编码由来 为什么会有Base64编码呢?...Base64编码应运而生,Base64就是一种 基于64个可打印字符来表示二进制数据的表示方法。 二. Base64编码原理 看一下Base64的索引表,字符选用了”A-Z、a-z、0-9、+、

    hex64:Base64编码和解码URL的UTF-8字符串(模块和二进制工具)

    Base64编码/解码URL的十六进制字符串(模块和二进制工具) 安装: npm install -g hex64 命令行: $ hex64 b64 cccccc zMzM $ hex64 hex zMzM cccccc $ hex64 cccccc b64: zMzM $ hex64 zMzM hex: cccccc $ hex64 ...

    编码和加解密测试小工具

    常用编码和加解密的测试小工具,方便进行日常开发测试,支持的编解码和加解密列表如下: Base64编码, MD5散列计算, ... JS字符串编码, 网页转义符_10, 网页转义符_16, 进制转换_62, XXTEA加密

    Javascript下的urlencode编码解码方法附decodeURIComponent

    或是经过asp、php等动态语言直接写入COOKIES的中文字符,用JS读取的时候,都会碰到一个编码的问题,那就是最终字符串被urlencode编码了,而又时有需要从JS在客户端去读取这些数据。而本文,就大概说说如何在js中通过...

    精易模块V7.5.5源码

    1、新增“编码_URL编码_JS”,利用JS脚本执行URL编码,提供“encodeURI”与“encodeURIComponent”两种方式编码;。2、新增“编码_URL解码_JS”,对应“编码_URL编码_JS”编码的数据解码;。3、新增“编码_URL编码_...

    js 处理URL实用技巧

    以下是JS下对URL进行编/解码的各种方法: escape方法:就对@*+/ A-Z 0-9 a-z这些字符不编码,其它非ASCII字符都会编码以%XX编码替换,解码使用unescape,escape 方法不能用来对“统一资源标识符”(URI) 进行编码。对其...

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

    js中escape对应的C#解码函数 System.Web.HttpUtility.UrlDecode(s) //注意编码 需要注意的几点: 1、HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法。...

    compressor:Javascript有效编码,将数字编码到Base64 URL

    Compressor可以编码任何数字数组,并解码Base64 URL字符串。用法用npm或yarn安装npm install c8r 或者yarn add c8r编码encode ( [ 1 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 1 ] ) ) ; 返回"Ahh"解码decode ( ...

    JS-VBS-Samples.rar_数据库 编码 实例

    完成URL的编码和解码,在特定的场合很有用。可以将形如“孙月明”和“ CB EF D4 C2 C3 F7”的字符串相互转换。 选课(示意)系统 v0.2 for WinXP 使用的是Access数据库,只是一个演示系统,其中很多代码是来自我的...

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

    嚼被写成缩短长的十进制整数到base62字符串。 这不是单纯的基本转换,因为它在逻辑内部不使用算术运算。 这样,它可以将非常长的数字快速转换为字符串,而不会发生溢出。 例如,如果我想使用一个URL共享一个ID,这...

    100个直接可以拿来用的JavaScript实用功能代码片段(1-10)

    79、原生JavaScript判断字符串是否邮政编码 80、原生JavaScript判断字符是否空NULL 81、原生JavaScript用正则表达式提取页面代码中所有网址 82、原生JavaScript用正则表达式清除相同的数组(低效率) 83、原生...

Global site tag (gtag.js) - Google Analytics