架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4412|回复: 2

[JavaScript] JavaScript 中对 URL 和参数进行编码

[复制链接]
发表于 2022-4-16 18:50:39 | 显示全部楼层 |阅读模式
URL 编码

有些字符不能出现在 URL 中(例如空格),其他的一些字符在 URL 中有特殊含义。我们需要转换特殊字符以使之符合 W3 URI 规范( RFC 3986)中定义的句法。这就意味着 URL 必须只能包含一个特殊的 ASCII 字符的子集:我们熟悉的字母和数字,以及一些在 URL 中用作控制字符的保留字符。

JavaScript 中的 URL 编码处理

在 JavaScript 中 encodeURIComponent() 和 encodeURI() 这两个内置函数都可以进行 URL 编码,会把 URL 中的保留字符替换为它们的 UTF-8 编码后的字符。

大多数浏览器会自动进行 URL 编码,例如会把空格字符编码为 %20,不过总有一些例外。幸运的是浏览器提供了内置的 URL 编码和解码函数:encodeURI,encodeURIComponent 和 decodeURI,decodeURIComponent。问题是如何使用这些函数,以及它们之间的区别是什么。

encodeURI()

为一个字符串进行 URL编码很容易,只需要调用 encodeURI,传入要编码的字符串即可。此函数会返回编码后的 URL。

decodeURI()

此函数会进行解码,调用 decodeURI 函数,传入要上述编码后的字符串,然后它会返回解码后的正常的字符串。

QQ截图20220416184637.jpg

encodeURIComponent()

encodeURIComponent 函数应该用于编码 query string 的参数值。encodeURI 和 encodeURIComponent 之间的区别是 encodeURIComponent 编码整个字符串,而 encodeURI 忽略协议前缀(’http://’)以及域名。encodeURIComponent 被设计用来编码所有的内容,而 encodeURI 会忽略 URL 中的域名部分。当你想要为 URL 中的参数值编码时,请选择 encodeURIComponent 函数

decodeURIComponent()

decodeURIComponent 函数会解码 encodeURIComponent 函数编码后的字符串,把它还原为正常的内容。

QQ截图20220416184845.jpg

回顾:

js对url进行编码和解码(三种方式区别)
https://www.itsvse.com/thread-6844-1-1.html

url编码和解码
https://www.itsvse.com/thread-2728-1-1.html

ASP.NET中的URL编码解码
https://www.itsvse.com/thread-2642-1-1.html






上一篇:SQL Server 时间区间段优先级选择
下一篇:jQuery hide 不起作用两种解决方案
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-2-8 22:07:55 | 显示全部楼层
Mark住,get请求URL中带有#特殊字符,自动截取掉#后面的内容,导致URL地址不正确,无法正常访问
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-12-21 10:22:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-20 17:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表