Js中对URL进行转码与解码
escape 和 unescape
escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。
采用unicode字符集对指定的字符串除0-255以外进行编码。所有的空格符、标点符号、特殊字符以及更多有联系非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z。
escape()函数用于js对字符串进行编码,不常用。
示例:
var url = "http://localhost:8080/pro?a=1&b=张三&c=aaa";
escape(url) --> http%3A//localhost%3A8080/pro%3Fa%3D1%26b%3D%u5F20%u4E09%26c%3Daaa
encodeURI 和 decodeURI
把URI字符串采用UTF-8编码格式转化成escape各式的字符串。
encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURI()用于整个url编码
示例:
var url = "http://localhost:8080/pro?a=1&b=张三&c=aaa";
encodeURI(url) --> http://localhost:8080/pro?a=1&b=%E5%BC%A0%E4%B8%89&c=aaa
encodeURI还经常用于行中文的请求中,如:
async getDataAction(){if(this.isAjax('post')){const yamc = this.post('yamc');const glbm = this.post('glbm');let res = await this.service('midway','information').api('/ms_information/queryPlanPatrolInfo?yamc=' + encodeURI(yamc) + '&glbm=' + glbm, {method: 'post'});if (res.code == 0){return this.success(res.data);}else{return this.fail(res.msg);}}
}
如果请求中含中文不进行转码的话很有可能会遇到这种情况《nodejs使用http报错: Request path contains unescaped characters》
encodeURIComponent 和 decodeURIComponent
与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。
因此,"; / ? : @ & = + $ , #",这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。至于具体的编码方法,两者是一样。把URI字符串采用UTF-8编码格式转化成escape格式的字符串。
encodeURIComponent() 用于参数的传递,参数包含特殊字符可能会造成间断。
示例:
var url = "http://localhost:8080/pro?a=1&b=张三&c=aaa";
encodeURIComponent(url) --> http%3A%2F%2Flocalhost%3A8080%2Fpro%3Fa%3D1%26b%3D%E5%BC%A0%E4%B8%89%26c%3Daaa
示例2:
var url = "http://localhost:8080/pp?a=1&b="+ paramUrl,
var paramUrl = "http://localhost:8080/aa?a=1&b=2&c=3";应该使用encodeURIComponent()进行转码
encodeURIComponent(paramUrl) --> http://localhost:8080/pp?a=1&b=http%3A%2F%2Flocalhost%3A8080%2Faa%3Fa%3D1%26b%3D2%23%26c%3D3
Js中对URL进行转码与解码相关推荐
- js url解码gbk_JS中对URL进行转码与解码
1. escape 和 unescape escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值. 采用unicode字符集对指定的字符串除0-255以外进行编码.所 ...
- php js转码解码函数,javascript如何实现URL的转码与解码?
本篇文章给大家带来的内容是关于javascript如何实现URL的转码与解码?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1. escape 和 unescape escape() ...
- js encodeurl java接收_在JS中encodeURI(url)怎样才能不出现乱码?
这次给大家带来在JS中encodeURI(url)怎样才能不出现乱码?,在JS中使用encodeURI(url)的注意事项有哪些,下面就是实战案例,一起来看一下. 一般情况下, 发送 encodeUR ...
- node.js中的url.parse方法
学习node.js中的url.parse方法 文章目录 前言 一.URL模块之parse方法详解 1.参数 2.实例 例子1:url.parse只传一个参数的情况 例子2:url.parse第二个参数 ...
- Python 中的url,Base64和MD5编码解码的使用
1.encode()和decode() 我们所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的Bytes(字节). 所以当我们在Python中进行加密操作的时候,要确保 ...
- 关于将URL中的特殊字符进行转码和解码
当前开发中,遇到特殊情况: 使用url进行跨页面(跨域)传值的时候,会出现某些带特殊字符的url,在浏览器上被处理了,例如: 后端传给前端的跳转路径: http://127.0.0.1:8088/ha ...
- JS中获取URL中参数的4种方法
方法一:正则 function getQueryString(name) {var reg = new RegExp('(^|&)' + name + '=([^&]*)(&| ...
- js中请求URL获得json数据,将数据解析并建表插入
//打开数据库 var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024); //html请求数据 function testXm ...
- 为什么js中要用void 0 代替undefined
这个是Backbone.js中的一句源码 if (callback !== void 0 && 'context' in opts && opts.context == ...
- java backbone_在Backbone.js中发出POST请求
我有一个RESTful服务器,它接受url编码的参数 . 就我而言,发帖请求https://我的服务器:8443 / test / auth 将请求标头设置为Content-Type:applicat ...
最新文章
- SQL SERVER 数据库实用SQL语句
- vue处理json数据的原理_Vue解析json数据的渲染
- 刘烨:家里官方语言是中文 听不懂娘仨说法语
- 排序算法之递归算法(归并排序)
- 2019最新C语言知识整理小白进来看看??
- 作业帮电脑版在线使用_一起作业学生app 手机版免费在线下载
- java中为什么不能强制转换_为什么Java中的强制转换异常致命?
- 学会使用JDK API
- 无setup.exe情况下安装mysql5.7.28(win10)
- 交换机短路_交换机日常怎么运行维护?一文告诉你
- 8.Linux/Unix 系统编程手册(上) -- 用户和组
- 数据加密技术之加密算法
- 读计算机基础知识心得体会1000字,计算机学习个人心得体会1000字.doc
- python爬虫代码运行_怎么运行python爬虫程序
- 演讲的思路锻炼,逆向思维需要刻意练习吗?
- b站python_python学习 —— B站抢楼原理
- 如何入门多视角人脸正面化生成?不得不看的超详细最新综述!
- 22牛客多校5 - Don‘t Starve(DP,依靠边更新端点)
- word文档中统计总页数_如何在Google文档中查找页数和字数统计
- 史上最强HashMap面试教程
热门文章
- 优秀文章收集,也有专题,改变了我的一些看法。
- 重读博弈论(八)---海萨尼转换与贝叶斯法则
- 宇宙最强vscode教程(基础篇)
- swift oc UIimage 和 NSString 互相转换
- IDEA 和 Eclipse 使用对比
- ( # #@ ## 在define中的应用)或( 连接两个字符串或者两个数字、强制转化成单引号、强制转化成双引号 )附加字符串强制转化成数字...
- Mac Pro 使用 ll、la、l等ls的别名命令
- 从副总裁做”表哥“说起
- 7.TCP/IP 详解卷1 --- Ping 程序
- 4. Firebug 调试 Js