URL的合法字符

URL的合法字符表示再浏览器的地址栏中不会被转义的字符,有两种:

  1. URL元字符:分号(;),逗号(’,’),斜杠(/),问号(?),冒号(:),at(@),&,等号(=),加号(+),美元符号($),井号(#)
  2. 语义字符:a-z,A-Z,0-9,连词号(-),下划线(_),点(.),感叹号(!),波浪线(~),星号(*),单引号(),圆括号(()`)

当输入的字符不符合以上的字符时,浏览器就会把该字符转义,规则:根据操作系统的默认编码,将每个字节转为百分号(%)加上两个大写的十六进制字母。
比如:当再浏览器地址栏中输入www.baidu.com/q=你好时,会被转义成例如www.baidu.com/q=%E6%98%A5%E8%8A%82类似的字符串,浏览器才会读取。

JavaScript的四个URL编码/解码方法:

encodeURI

将元字符和语义字符之外的字符都进行转义,一般用于知道该URL只用于完整的URL时使用

encodeURIComponent

将除了语义字符之外的字符进行转义,包括元字符,因此,它的参数通常是URL的路径或参数值,而不是整个URL。
比如说,要在谷歌中搜索www.baidu.com/q=5&name时,若使用encodeURI,&字符并不会被转义,从而改变其真正的URL。

decodeURI

还原转义后的URL,是encodeURI方法的逆运算。

decodeURIComponent(此方法可以还原被转义的 url)

还原转义后的URL片段。是encodeURIComponent方法的逆运算。

转载于:https://www.cnblogs.com/ryanzheng/p/10374226.html

JS 关于 URL 的编码或解码方法相关推荐

  1. js 对url进行编码和解码

    三种编码和解码函数: encodeURI和 decodeURI 它着眼于对整个URL进行编码,因此除了常见的符号以外,对其他一些在网址中有特殊含义的符号"; / ? : @ & = ...

  2. JS对url进行编码和解码(三种方式区别)

    Javascript语言用于编码的函数,一共有三个,最古老的一个就是escape().虽然这个函数现在已经不提倡使用了,但是由于历史原因,很多地方还在使用它,所以有必要先从它讲起. escape 和 ...

  3. linux url解码,js对url进行编码和解码(三种方式区别)

    *** 只有 0-9[a-Z] $ - _ . + ! * ' ( ) , 以及某些保留字,才能不经过编码直接用于 URL. ***例如:搜索的中文关键字,复制网址之后再粘贴就会发现该URL已经被转码 ...

  4. JS对URL进行编码和解码

    escape 和 unescape 编码: escape('http://www.baidu.com?name=zhang@xiao@jie&order=1') 结果:"http%3 ...

  5. python url解码_对python中url参数编码与解码的实例详解

    一.简介 在python中url,对于中文等非ascii码字符,需要进行参数的编码与解码. 二.关键代码 1.url编码 对字符串编码用urllib.parse包下的quote(string, saf ...

  6. URL 的编码和解码

    URL 的编码和解码 1 什么是 URL? URL(Uniform Resource Locator):统一资源定位符,它是用来表示互联网上的某个资源地址,互联网上的每个文件都有一个唯一的 URL,它 ...

  7. php编码 js解码,浅谈php和js中json的编码和解码

    php中 1)编码 $jsonstr = json_encode($array) 2)解码 $arr = json_decode($jsonstr) echo json_encode("中文 ...

  8. go url 参数编码和解码

    为什么80%的码农都做不了架构师?>>>    1 在做支付的时候会涉及到 url参数编码和解码,然后转换成自己想要的格式 app_id=2016073100129537&b ...

  9. 便利贴--41{js - base64 - _utf8_ 的编码和解码}

    便利贴--41{便利贴--41{js - base64 - _utf8_ 的编码和解码}} 编码 解码 utf8 合并 编码 this.encode = function (input) {_keyS ...

最新文章

  1. Linux系统管理工具-iostat、free、ps、netstat、tcpdump
  2. 红帽linux登陆错误,xmanager连接RedHat出错:/usr/X11R6/bin/xterm: No such file or directory
  3. 数据挖掘原理与算法:机器学习->{[sklearn. model_selection. train_test_split]、[h2o]、[网格搜索]、[numpy]、[plotly.express]}
  4. 什么情况下选择linux,在哪种情况下建议选择BSD系统而不是Linux?
  5. 设置edittext不自动获取焦点
  6. matlab二元一次方程求解_高中化学二元混合物的十字交叉法解法
  7. mailto 附带附件_我和我的朋友如何将附带项目发展为每月$ 17,000的业务
  8. Python set集合 - Python零基础入门教程
  9. 背部辨识度极高!红米K30系列将率先采用高通5G处理器
  10. C#-设置button颜色
  11. Android 如何在一个Activity中合理地显示多种类型的checkBox
  12. SoapUI 使用教程链接
  13. python开发erp系统odoo_odooERP系统(框架)总结
  14. 《UnityAPI.Animation动画》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Animation+AddClip+CrossFade+立钻哥哥++OK++)
  15. MessageBox--获知点击确认还是取消?
  16. 【2D detection】Deformable DETR论文阅读记录
  17. 计算机word文档无法工作,word无法打开(WORD文档打不开_解决方法_电脑基础知识_IT/计算机_专业资料)...
  18. 盘点3种生涯的决策类型和方法,看看你是哪种类型?|【生涯荐读】
  19. file.exists(),file.isFile()和file.isDirectory()的区别
  20. SAP 散装物料作用及设置

热门文章

  1. 软件工程网络15个人阅读作业1
  2. dubbo + zookeeper 简介和部署
  3. ECMAScript 发展历史
  4. CocoaPods安装及使用
  5. EasyUi – 1.入门
  6. 【maven】maven入门以及maven常用命令
  7. SpringMVC的返回值和参数类型
  8. CI(持续集成)/CD(持续部署)
  9. web测试内容及工具经典总结
  10. inventor软件绘制百叶窗方法_三维工厂设计该使用什么软件?