本篇文章给大家带来的内容是关于javascript如何实现URL的转码与解码?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1. escape 和 unescape

escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。

采用unicode字符集对指定的字符串除0-255以外进行编码。所有的空格符、标点符号、特殊字符以及更多有联系非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z。

escape()函数用于js对字符串进行编码,不常用。

编码:escape('http://www.baidu.com?name=zhang@xiao@jie&order=1')

结果:"http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1"

escape('张')

结果:"%u5F20"

解码:unescape("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")

结果:"http://www.baidu.com?name=zhang@xiao@jie&order=1"

unescape("%u5F20")

结果:"张"

2. encodeURI 和 decodeURI

把URI字符串采用UTF-8编码格式转化成escape各式的字符串。

encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURI()用于整个url编码

编码:encodeURI('http://www.baidu.com?name=zhang@xiao@jie&order=1')

结果:"http://www.baidu.com?name=zhang@xiao@jie&order=1"

解码:decodeURI("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")

结果:"http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1"

3. encodeURIComponent 和 decodeURIComponent

与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。

因此,";

/ ? : @ & = + $ ,

#",这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。至于具体的编码方法,两者是一样。把URI字符串采用UTF-8编码格式转化成escape格式的字符串。

encodeURIComponent() 用于参数的传递,参数包含特殊字符可能会造成间断。

编码:encodeURIComponent('http://www.baidu.com?name=zhang@xiao@jie&order=1')

结果:"http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhang%40xiao%40jie%26order%3D1"

解码:decodeURIComponent("http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhang%40xiao%40jie%26order%3D1")

结果:"http://www.baidu.com?name=zhang@xiao@jie&order=1"

总结:

escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。比如"春节"的返回结果是%u6625%u8282,,escape()不对"+"编码

主要用于汉字编码,现在已经不提倡使用。

encodeURI()是Javascript中真正用来对URL编码的函数。

编码整个url地址,但对特殊含义的符号"; / ? : @ & = + $ , #",也不进行编码。对应的解码函数是:decodeURI()。

encodeURIComponent()

能编码"; / ? : @ & = + $ , #"这些特殊字符。对应的解码函数是decodeURIComponent()。

我想要传递带&符号的网址,所以用encodeURIComponent()

php js转码解码函数,javascript如何实现URL的转码与解码?相关推荐

  1. js如何调用php函数,JavaScript 调用PHP

    JS中同步调用PHP函数 1.在JS中创建一个函数,该函数可以发送Http请求到服务端,并受到返回消息,可以使用get或者是post function HttpGet(theUrl) { var xm ...

  2. JS escape()和unescape()函数的介绍

    escape()和unescape()是一对 编码解码 函数,一般用于URL中非ASCII字符的编码和解码! 如:escape("&")返回%26,unescape(&qu ...

  3. JavaScript和C#通用gb2312和utf8编码解码函数简单实现

    1.javascript实现gb2312编码解码 随便看到一段话如下: "老赵的jscex https://github.com/JeffreyZhao/jscex/blob/master/ ...

  4. ChirpStack 笔记 2.7 JS编解码函数的使用

    文章目录 前言 1 ChirpStack 中如何启用编解码函数功能 1.1 编解码组件的 API 使用 请求示例 NONE 请求示例 CAYENNE_LPP 请求示例 CUSTOM_JS 2 Java ...

  5. video.js 源码分析(JavaScript)

    video.js 源码分析(JavaScript) 组织结构 继承关系 运行机制 插件的运行机制 插件的定义 插件的运行 控制条是如何运行的 UI与JavaScript对象的衔接 类的挂载方式 存储 ...

  6. php加密js函数输出,PHP加密函数 Javascript/Js 解密函数的实现方法

    这篇文章主要为大家详细介绍了PHP加密函数 Javascript/Js 解密函数的实现方法,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧! 以下函数代码 ...

  7. html中写嵌套的js函数,Javascript 嵌套函数 - 递归函数 - 内置函数详解

    在了解了函数的定义和函数调用外,下面我们来介绍一下JavaScript中几种特殊的函数. JavaScript特殊函数有3种: (1)嵌套函数: (2)递归函数: (3)内置函数: 下面详细给大家讲解 ...

  8. Excel URL解码函数的使用

    url解码函数(乱码编译成中文) 方法一: Function URLDecode(ByVal strIn)URLDecode = ""Dim sl: sl = 1Dim tl: t ...

  9. java js隐藏_Javascript匿名函数是否仍然可见? (使用Java applet,这是一种隐藏JS代码的方法)...

    我正在使用Javascript编写应用程序.我正在寻找一种隐藏代码的方法,我想我已经找到了一个使用Java Applet的代码. 无论如何,我认为只有在评估js匿名函数的代码后仍然无法以任何方式访问它 ...

最新文章

  1. session对象不创建会有吗_相亲对象木讷无聊,想找个不无趣的男人这么难吗?...
  2. Eclipse继承HttpServlet出现:HttpServlet cannot be resolved to a type的错误的解决方案
  3. solidworks今日制造插件_用SolidWorks设计齿轮,如何事半功倍,且听我说说
  4. 我的docker随笔12:docker源码编译
  5. linux7 开启端口,常用CentOS7系统防火墙开启设置和开放端口方法
  6. 这样的AI技术实战方式,大boss都看不下去了!
  7. 九型人格,工作中的好帮手.
  8. Python流程控制
  9. 【音乐百科】古琴和古筝的区别
  10. cogs——2098. Asm.Def的病毒
  11. iWatermark Pro for Mac(水印制作软件)
  12. 零电压开关(ZVS)电路原理与设计(整理)
  13. 虚拟内存怎么设置最好_虚拟内存怎么设置到d盘
  14. 阿里云国际站卸载阿里云盾监控
  15. LinuxStudyNote(39)-Linux软件包管理(1)-Linux软件包简介之源码包与RPM包、源码包的优缺点、RPM二进制包的优缺点
  16. WAP(wml)开发问答
  17. Android从上往下滑动或从下往上滑动结束Activity
  18. 2.4-关键点Keypoints
  19. typescript基础学习
  20. 开源项目精选推荐-杨小杰工具箱(YoungxjTools)

热门文章

  1. 从“XTools企业维生素”看销售管理的过程控制
  2. 使用SDL2播放yuv文件,采用C++实现SDL2视频播放器
  3. php连接sqlsrv流程记录
  4. c语言pm2.5检测系统,PM2.5检测
  5. 谷歌插件开发ajax请求,Chrome扩展开发,跨域请求API
  6. 10分钟python爬虫_python scrapy 入门,10分钟完成一个爬虫
  7. jfif格式的图片怎么改成jpg
  8. matlab画圆环弯矩图,用MATLAB实现弯矩图的自动绘制
  9. 抖音快乐盒1.0版本
  10. 进制转换通用模板(以10进制转换为7进制为例)