🎊 举例说明什么是decodeURI()和encodeURI()是什么?

举例说明什么是decodeURI()和encodeURI()是什么?

encodeURI() 和 decodeURI() 是 JavaScript 中用于编码和解码 URI 的函数。它们主要用于处理包含特殊字符的 URI,确保 URI 的有效性和安全性。

encodeURI()

encodeURI() 函数用于将 URI 编码为有效的 URI 字符串。它会将 URI 中的特殊字符(例如空格、中文、标点符号等)转换为 UTF-8 编码的十六进制转义序列(例如 %20 表示空格)。

重要: encodeURI() 不会 编码以下字符:A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) # 这些字符在 URI 中具有特殊含义,但通常不需要编码。

示例:

假设有一个包含中文和空格的 URI:

const uri = "https://example.com/搜索 结果.html";

使用 encodeURI() 编码后:

const encodedURI = encodeURI(uri);

console.log(encodedURI); // 输出: https://example.com/%E6%90%9C%E7%B4%A2%20%E7%BB%93%E6%9E%9C.html

decodeURI()

decodeURI() 函数用于将编码后的 URI 解码回原始的 URI 字符串。它会将 encodeURI() 生成的十六进制转义序列转换回对应的字符。

示例:

使用上面编码后的 URI:

const decodedURI = decodeURI(encodedURI);

console.log(decodedURI); // 输出: https://example.com/搜索 结果.html

encodeURIComponent() 和 decodeURIComponent()

与 encodeURI() 和 decodeURI() 类似,JavaScript 还提供了 encodeURIComponent() 和 decodeURIComponent() 函数。它们的区别在于 encodeURIComponent() 会编码更多的字符,包括上面提到的那些 encodeURI() 不会编码的字符,例如 /、?、& 等。

通常情况下,encodeURIComponent() 用于编码 URI 的各个组成部分(例如查询参数的值),而 encodeURI() 用于编码整个 URI。

总结:

函数

作用

编码范围

encodeURI()

编码 URI

编码大部分特殊字符,但不编码保留字符

decodeURI()

解码 URI

解码 encodeURI() 编码的 URI

encodeURIComponent()

编码 URI 组件

编码几乎所有特殊字符,包括保留字符

decodeURIComponent()

解码 URI 组件

解码 encodeURIComponent() 编码的 URI 组件

希望以上解释和示例能够帮助你理解 encodeURI() 和 decodeURI() 的用法。

🎁 相关推荐

华为天际通开放 Pro 流量套餐:2000GB 流量 49.9 元每月,可享网络优先级服务
zabbix设置全局数据保存时间
🎯 bat365官方网站

zabbix设置全局数据保存时间

📅 06-29 👀 1249
北斗导航app下载官方正式版
🎯 365足彩推荐

北斗导航app下载官方正式版

📅 07-28 👀 1642