JavaScript encodeURI()和decodeURI()是什么

JavaScript encodeURI()和decodeURI()是什么

URL和URI的设计目的是定位/标识互联网上可用的资源,任何唯一标识资源的东西都是其URI,比如id、name。URL指定了一个资源及其访问协议。所有的URL都是URI,但不是所有的URI都是URL。URI只能包含标准ASCII字符集中的某些字符。不属于此集合的保留字符必须进行编码。这意味着当传递到URL中时,我们需要对这些字符进行编码。在JavaScript中,我们有两个特殊的函数来完成编码和解码URI的任务。 encodeURI ()和 decodeURI ()这些函数用于编码/解码非英语字符,如URI(统一资源标识符)中使用的拉丁、希腊字母。此外,它还有助于编码特殊字符,替换URI中的空格;有时这些特殊字符或空格可以作为URI的分隔符。

1. encodeURI(): 它用于将给定的URI编码为UTF-8格式。encodeURI()函数以字符串类型的URI作为函数参数值,并通过用表示字符的UTF-8编码的一个、两个、三个或四个转义序列替换每个实例来对URI进行编码。

语法:

encodeURI(URI)
JavaScript

参数:

在这里,URI是一个完整的URI-统一资源标识符(字符串类型),您希望对其进行编码。

返回值:

上述函数将返回一个表示给定URI的“已编码URI”的新字符串,该URI作为函数的参数提供。

注意:

在许多浏览器中,encodeURI()不会对许多字符进行编码。以下是一组特殊字符[ ~!@#$&*()=:/,;?+’ ],为了编码这些字符集,单独实现了escape()函数。以及英文字母和数字[ A-Z a-z 0-9 – _ . ! ~ * ‘ ( ) ]不会被encodeURI()转义。要编码完整的URI字符串,可以使用encodeURI(),如果您只想编码URI字符串的一部分,则可以使用encodeURIComponent()。

2. decodeURI():

用于解码已经之前编码的URI。它是反向工作的,将编码的字符串替换为正常字符。decodeURI()函数以字符串类型的encodedURI作为函数参数值,并解码由encodeURI()或类似例程创建的给定已编码URI。

语法:

decodeURI(encodedURI)
JavaScript

参数: encodedURI是表示完整编码的URI(统一资源标识符)的参数。如果要解码URI参数,必须仅包含编码表单的URI。此外,如果给定的参数encodedURI包含无效的字符序列,它会抛出’URIError’异常。

返回值: 上述函数将返回表示给定URI编码形式的解码版本的新字符串。

注意: 将编码URI中的每个转义序列替换为其表示的字符,但不解码可能由encodeURI引入的转义序列。它还用于解码西里尔语URL;西里尔语URL包含类似于拉丁字母表(用于英语)中的字母的西里尔字母,有时用于跟踪用户并将其重定向到假网站。

示例:

JavaScript

<script> 
    const uri = 'https://www.geeksforgeeks.org/?x=γεια'; 
    const encoded = encodeURI(uri); 
    console.log("Encoded URI - ", encoded); 
  
    // Expected output:  
    //"https://www.geeksforgeeks.org/?x=%CE%B3%CE%B5%CE%B9%CE%B1" 
  
    try { 
        console.log("Decoded URI - ", decodeURI(encoded)); 
  
        // Expected output:  
        // "https://www.geeksforgeeks.org/?x=γεια" 
    } catch (e) { 
        console.error(e); 
    } 
</script>
JavaScript

输出:

JavaScript encodeURI()和decodeURI()是什么

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册