JavaScript 中的 encodeURI()

2025年3月2日 | 阅读 4 分钟

JavaScript encodeURI() 定义

JavaScript的URI()函数可以通过用一个、两个或三个表示UTF-8模式的转义序列替换特定字符实例来编码任何统一资源标识符(URI)。此函数可用于编码特殊URI字符和保留字符,这些字符指示一组例外字符,例如;/? @ & = + $ 后跟另一组字符例外:未转义的带小数位的字符,它们是字母、- _! ~ * '() 和一个数字,表示分数。

语法

一旦调用encodeURI()函数,URI就会使用预定义的语法进行编码。必需的参数URI代表需要编码的精确URI。

JavaScript的encodeURI()函数如何工作?

让我们看看JavaScript的encodeURI()函数是如何工作的

  1. 通过用转义序列替换URI中的原始字符,JavaScript中的encodeURI()函数可以编码字符。在此过程中,将编码三个字符类别。
  2. 参数URI是encodeURI语法流程的一部分,它代表URI所指向的位置,并简化和定制URI流。
  3. 可以使用JavaScript的decodeURI()函数解码编码后的URI。通过将编码URI中的转义序列还原为其原始字符,它执行与encodeURI()函数相反的操作。它接受编码后的URI作为输入,并输出解码后的URI。
  4. 在浏览器支持方面,带有参数的encodeURI(URI)函数具有相当灵活的兼容性。
  5. 此外,任何基于URI的组件,包括encodeURI和包含URI组件的函数,都使用encodeURIComponent()。
  6. 根据要求使用encodeURI(URI)和encodeURIComponent(URI)函数是相关的。
  7. JavaScript的常数复杂度源于其最小的操作和修改。相反,由于它以字符串作为返回类型,因此时间复杂度是常数。
  8. 所有这些函数都旨在编码字符串,以便该集合在支持具有ASCII值的特殊字符的网络或计算机系统之间具有可移植性和可传输性。
  9. 然而,所有这些函数都具有一些共同的功能,例如能够以使用字符的方式编码URI()和encodingURIComponent(),除了保留的、未转义的和分数字符外。
  10. 虽然工作流程可能与其他函数相同,但JavaScript的encodingURI()和encodingURI()组件之间存在一些差异。

URI与URL有什么区别,它意味着什么?

统一资源标识符的缩写是URI。统一资源定位符被称为URL。资源的唯一标识符(URI),例如其ISBN、id或名称,是识别它的任何东西。资源的URL指示其可访问性(协议)。所有URL都是URI,尽管并非所有URI都是URL。Application EncodeURIComponent()是另一个工作方式相似的JavaScript函数。如果不了解它们之间的区别,可能会难以选择使用哪个。

为什么需要编码?

URL只能使用标准128字符ASCII集中的一小部分。该集合之外的任何保留字符都需要进行编码。

这意味着当我们输入这些字符到URL时,我们必须对它们进行编码。如&、空格和!等特殊字符,当输入到URL中时,必须对其进行转义,以避免意外结果。

用例

用户在表单字段(如URL字段)中输入的值可能需要以字符串格式传递。

为了进行GET请求,必须接受查询字符串参数。

encodeURI与encodeURIComponent有什么区别?

EncodeURI和encodeURIComponent可用于编码统一资源标识符(URI),方法是用一个、两个、三个或四个转义序列替换字符的UTF-8编码。

对于应使用encodeURIComponent编码的URI组件或打算成为URL一部分的字符串。

使用encodeURI来加密URI或现有URL。

哪些字符可以加密?

  1. encodeURI()不会编码~!@#$&*()=:/,;?+'。
  2. 您不能使用encodeURIComponent()编码~!*()'。
  3. 从A到Z,a-z,0到9,_。!并且也没有对~* '()的转义。

示例

代码

输出

encodeURI() in JavaScript

JavaScript encodeURIComponent() 示例

代码

输出

encodeURI() in JavaScript

好处

encodeURI功能具有以下优点,与其他所有功能类似:

  1. 程序员可以在encodeURI()函数的帮助下快速简单地编码URI(统一资源标识符)。它有助于编码URI中的每个字符,并提供编码值的字符串表示。
  2. 它提供了广泛的浏览器支持,这些浏览器与URI()编码函数的各种版本兼容。

总结

与其他编码字符序列的函数相比,encodeURI()函数在其辅助下快速简单地编码URI,然后将最终结果提供给用户。这有助于简化整体字符读取过程,并使用户更容易实现。此外,目前使用的其他方法非常相似且兼容,只需要很少的修改即可编码URI。