JS中编码的三种方法
在开发中经常需要对用户输入的数据进行编码然后才能通过HTTP请求发送给后台,或者对传递过来的数据进行解码。在JS中原生提供了三种编码/解码方式,分别是 encodeURI、 encodeURIComponent和 escape。
为什么URL需要编码?
URI设计要求可移植,其中包括安全传输、方便阅读、完整性。
安全传输:不能在传递过程中有些信息被过滤掉
方便阅读:不能有空白字符
完整性:不能有的字符表示不了内容,例如中文
结合考虑URL使用ASCII字符集,而这个字符集是有限的,怎么表示无限的字符呢?并且ASCII中还有些被URL保留,例如#、&、?、/等。
这时候就需要编码,编码规则是使用使用%加上两个表示字符ASCII码的16进制数。
例如:
~ 对应 126 对应 0x7E 对应 %7E
空格 对应 32 对应 0x20 对应 %20
并且我们知道ASCII是用一个字节表示的一个可以表示256个字符,2的8次方,一个8bit。
但是汉字这显然是不够的,有的时候需要3个字节来表示所以encodeURIComponent('中')就变成了%E4%B8%AD
encodeURI
该方法不会对ASCII表中的字母和数字编码,同时也不会对ASCII中的标点符号编码 -_.~*’() 在URI中具有特殊含义的符号 **;/?
JS中编码的三种方法相关推荐
- JS截取字符串的三种方法详解
本文详细讲解了JS截取字符串的三种方法,文中通过示例代码介绍的非常详细.对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 JS提供三个截取字符串的方法,分别是:slice(),subst ...
- JS数组添加元素的三种方法
JS数组添加元素的三种方法 1.push() 方法可以向数组末尾添加一个或多个元素,并且返回新的长度 语法:arr.push(element1,element2,element3,····) 参数 概 ...
- PHP中删除目录的三种方法
原文链接:http://www.chinaz.com/program/2008/1022/41645.shtml PHP中删除目录的三种方法 1.递规法:利用递归一层一层的删. deleteDir($ ...
- OpenCV精进之路(零):访问图像中像素的三种方法
访问像素的三种方法 指针访问:最快 迭代器iterator:较慢,非常安全,指针访问可能出现越界问题 动态地址计算:更慢,通过at()实现.适用于访问具体某个第i行,j列的像素,而不适用遍历像素 这里 ...
- 在MATLAB中生成矩阵的三种方法
在MATLAB中生成矩阵的三种方法 1. 直接输入法 2. 外部文件读入法 3.特殊矩阵函数生成法 1. 直接输入法 (1)矩阵所有元素必须在[]内 (2)矩阵中同行元素以逗号','或空格分隔 (3) ...
- 痞子衡嵌入式:在IAR开发环境下将关键函数重定向到RAM中执行的三种方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下将关键函数重定向到RAM中执行的三种方法. 嵌入式项目里应用程序代码正常是放在 Flash 中执行的,但有时候也需要将 ...
- JS下载文件的三种方法
因为公司后端忙得无法给批量下载的api,就我们前端自己把多张图片打包成zip下载,zip打包我们用的是jszip,下面是js实现下载的三种方法: 利用HTML download 属性 var a = ...
- java定时执行某个方法_Java中定时执行任务的三种方法
Java中定时执行任务的三种方法 1)java.util.Timer 这个方法应该是最常用的,不过这个方法需要手工启动你的任务: Timer timer=new Timer(); timer.sche ...
- JAVA 通过value获取Map中key的三种方法
JAVA 通过value获取Map中key的三种方法 简介 方法描述 循环法 Stream方法 Apache Commons Collections的BidiMap 总结 简介 我们都知道Map是存放 ...
- js中事件绑定3种方法以及事件委托
###事件绑定 首先,我先来介绍我们平时绑定事件的三种方法. 1.嵌入dom <button onclick="open()">按钮</button>< ...
最新文章
- SQLite中的SELECT子句使用通配符
- 软件保障与测试课程实践记录:贪吃蛇小程序
- java安全编码指南之:拒绝Denial of Service
- 《Python Cookbook 3rd》笔记(3.7):无穷大与 NaN
- HBaseConAsia 2019盛会来袭
- C/C++ 常量的定义与应用(编程中的常量)
- python画数学函数_Python 绘制你想要的数学函数图形 !
- python 使用.bat文件自动执行
- ProGuard:类混淆,类的指定函数保留
- 货币转换程序(双符号)python代码,Python-将货币代码转换为其符号
- 手写数字识别mnist
- 【微信小程序】体验版获取不到接口数据
- qt中socket通信流程图_Qt学习 之 Socket通信(世界上最简单的例子了)
- 阿里p7程序员哀叹:35岁,被通知合同不再续签
- [BZOJ5109/CodePlus2017]大吉大利,晚上吃鸡!
- wireshark Fiddler抓包分析与解密https Fiddler修改https请求和响应
- 盘一盘 Python 系列 - Sklearn
- adobe cs5 indesign 不显示文本框_Adobe CS5 InDesign自动添加页码
- PCB如何更合理的拼版
- 魔法币 java_网易2018校招笔试编程题-魔法币 java实现