0
点赞
收藏
分享

微信扫一扫

encodeURIComponent 和 decodeURIComponent

encodeURIComponent(URI) 

MDN解释:

encodeURIComponent(URI)  都是对统一资源标识符(URI)的组成部分进行编码的方法。

返回值:

返回URIstring的副本,其中的某些字符将被十六进制的转义序列进行替换。

说明:

(1)该方法不会对ASCLL、字母、数字进行编码,也不会对ASCLL标点符号进行编码:如:-    . ! ~ * ' ( )

(2)其他字符(比如:; / ? : @ & = + $ , # 这些用于分割URI组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

 decodeURIComponent(url) 函数

用法:

 decodeURIComponent() 函数可把字符串作为 URI 组件进行解码。

返回值:

解码后的文本或URI组件

在使用js的jQuery的post向后台servlet传递拼接的字符串数据时,一些特殊的字符例如:“+、@、#、

$、%、&、?、/”等无法传递到后台输出。

举个例子:

       var str1="a+aa+bb@kk$dd";

       var  data="data1"="+str1+"+"&"+"data2"+str2;

         如果不进行编码,则通过js的jQuery的post或者使用window.self.location传递数据到后台,都会造成+、@、$字符无法正常输出。

正确写法:

        var str1=encodeURIComponent("a+aa+bb@kk$dd");

        var  data="data1"="+str1+"+"&"+"data2"+str2;

小知识

<1>  什么是URI 

URI, 统一资源标识符( Unifrom Resource Identifier, URI ),表示的是web上每一中可用的资源,如: html文档、图像、视频短片、程序等都由一个 URI 进行定位的。

<2>  URI的组成部分

URI通常有三部分组成:

(1)访问资源的命名机制。

(2)存放资源的主机名。

(3)资源自身的名字。

<3> URI举例


我们可以这样解释:

(1)这是一个可以通过https 协议访问的资源,

(2)位于主机 blog.csdn.net 上,

(3)通过 "/qq_1063614453/article/details/111" 可以对资源进行唯一标识

注意:以上三点只不过是对示例的解释,这三点并不是URI的必要条件,URI只是一种概念,怎样实现无所谓,只要它唯一标识一个资源就可以。


举报

相关推荐

0 条评论