首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转义()、encodeURI()、encodeURIComponent()

转义()、encodeURI()、encodeURIComponent()
EN

Stack Overflow用户
提问于 2013-01-14 11:47:14
回答 5查看 28.2K关注 0票数 44

在JavaScript中,这两者之间有什么区别?

  1. escape() / unescape()
  2. encodeuri() / decodeuri()
  3. encodeURIComponent() / decodeURIComponent()
EN

回答 5

Stack Overflow用户

发布于 2016-06-06 10:19:32

对于视觉方面而言,下面的表格显示了encodeURI()encodeURIComponent()escape()对常用符号ASCII字符的影响:

代码语言:javascript
复制
Char  encUrI  encURIComp  escape
*     *       *           *
.     .       .           .
_     _       _           _
-     -       -           -
~     ~       ~           %7E
'     '       '           %27
!     !       !           %21
(     (       (           %28
)     )       )           %29
/     /       %2F         /
+     +       %2B         +
@     @       %40         @
?     ?       %3F         %3F
=     =       %3D         %3D
:     :       %3A         %3A
#     #       %23         %23
;     ;       %3B         %3B
,     ,       %2C         %2C
$     $       %24         %24
&     &       %26         %26
      %20     %20         %20
%     %25     %25         %25
^     %5E     %5E         %5E
[     %5B     %5B         %5B
]     %5D     %5D         %5D
{     %7B     %7B         %7B
}     %7D     %7D         %7D
<     %3C     %3C         %3C
>     %3E     %3E         %3E
"     %22     %22         %22
\     %5C     %5C         %5C
|     %7C     %7C         %7C
`     %60     %60         %60

另一个重要的区别是unescape()不处理多字节UTF-8序列,而decodeURI[Component]()处理:

代码语言:javascript
复制
decodeURIComponent("%C3%A9") == "é"
unescape("%C3%A9") == "é"
票数 68
EN

Stack Overflow用户

发布于 2013-01-14 11:51:41

  • escape -坏掉了,不推荐,不要使用
  • encodeURI -对URL中不允许(raw)的字符进行编码(如果不能事先修复它们,则使用它来修复已损坏的URI)
  • encodeURIComponent -作为在URI中具有特殊意义的encodeURI加字符(使用它来编码数据以插入URI)
票数 44
EN

Stack Overflow用户

发布于 2013-01-14 11:56:28

首先,逃逸是被废弃的,不应该被使用。

encodeURI()

当您要对URL进行编码时,应该使用它来编码URL中不允许的符号。

encodeURIComponent()

当您想要对URL的参数进行编码时,应该使用它,您也可以使用它来编码整个URL。但是你必须对它进行解码才能再次使用它。

--

我会说这是个复制品。以下是阿恩·埃弗特松( answer )的最佳答案:When are you supposed to use escape instead of encodeURI / encodeURIComponent?

关于为什么/为什么不在这个话题上,有很多细节。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14317861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档