js encodeuricomponent php解码,JS和PHP中URL编码转换:escape()、encodeURI()、encodeURIComponent()...

JS和PHP中URL编码转换:escape()、encodeURI()、encodeURIComponent()

escape() 方法:

该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

encodeURI() 方法:

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

encodeURIComponent() 方法:

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

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

encodeURIComponent() 函数 与 encodeURI() 函数的区别之处:

前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串),因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

总结:

通过对三个函数的分析,我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。

而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。

Here you can see how the various JavaScript and PHP functions apply to a range of common characters:

Input

JavaScript

PHP

escape

encodeURI

encodeURIComponent

urlencode

rawurlencode

htmlentities

%20

%20

%20

+

%20

!

%21

!

!

%21

%21

!

@

@

@

%40

%40

%40

@

#

%23

#

%23

%23

%23

#

$

%24

$

%24

%24

%24

$

%

%25

%25

%25

%25

%25

%

^

%5E

%5E

%5E

%5E

%5E

^

&

%26

&

%26

%26

%26

&

*

*

*

*

%2A

%2A

*

(

%28

(

(

%28

%28

(

)

%29

)

)

%29

%29

)

-

-

-

-

-

-

-

_

_

_

_

_

_

_

=

%3D

=

%3D

%3D

%3D

=

+

+

+

%2B

%2B

%2B

+

:

%3A

:

%3A

%3A

%3A

:

;

%3B

;

%3B

%3B

%3B;

;

.

.

.

.

.

.

.

"

%22

%22

%22

%22

%22

"

'

%27

'

'

%27

%27

'

\

%5C

%5C

%5C

%5C

%5C

\

/

/

/

%2F

%2F

%2F

/

?

%3F

?

%3F

%3F

%3F

?

<

%3C

%3C

%3C

%3C

%3C

<

>

%3E

%3E

%3E

%3E

%3E

>

~

%7E

~

~

%7E

%7E

~

[

%5B

%5B

%5B

%5B

%5B

[

]

%5D

%5D

%5D

%5D

%5D

]

{

%7B

%7B

%7B

%7B

%7B

{

}

%7D

%7D

%7D

%7D

%7D

}

%60

%60

%60

%60

%60

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值