JS对字符串编码的几种方式使用指南


Posted in Javascript onMay 14, 2015

函数 描述
encodeURI() 把字符串编码为 URI
encodeURIComponent() 把字符串编码为 URI 组件
escape() 对字符串进行编码

上面是查询来自w3school的资料。那么三者之间有什么区别呢,请容我测试测试。

var str = "http://localhost:8080/Product/index?id=123&attr=456&area=中国";

console.log(encodeURI(str));

console.log(encodeURIComponent(str));

console.log(escape(str));

打印结果如下:

http://localhost:8080/Product/index?id=123&attr=456&area=%E4%B8%AD%E5%9B%BD

http%3A%2F%2Flocalhost%3A8080%2FProduct%2Findex%3Fid%3D123%26attr%3D456%26area%3D%E4%B8%AD%E5%9B%BD 

http%3A//localhost%3A8080/Product/index%3Fid%3D123%26attr%3D456%26area%3D%u4E2D%u56FD

可以看出,

encodeURI不会对:/?&等uri中起分割作用的字符进行编码;

encodeURIComponent则会。

观察escape则发现,:?&都被转码了,而/没有,w3school解释是,escape函数会对ascii码中字母、数字及符号( * @ - _ + . / )之外的所有字符进行编码。

另外,我们可以看出escape对汉字“中国”编码后结果与前两者不同。W3SCHOOL也建议不使用该方法,用前两者代替。

以上所述就是本文的全部内容了,希望对大家学习javascript能够有所帮助。

Javascript 相关文章推荐
用jquery实现学校的校历(asp.net+jquery ui 1.72)
Jan 01 Javascript
使用text方法获取Html元素文本信息示例
Sep 01 Javascript
AngularJS 2.0入门权威指南
Oct 08 Javascript
如何提高数据访问速度
Dec 26 Javascript
利用Js+Css实现折纸动态导航效果实例源码
Jan 25 Javascript
详解JS: reduce方法实现 webpack多文件入口
Feb 14 Javascript
bootstrap switch开关组件使用方法详解
Aug 22 Javascript
Ionic学习日记实现验证码倒计时
Feb 08 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 Javascript
vue自定义指令和动态路由实现权限控制
Aug 28 Javascript
JavaScript this关键字指向常用情况解析
Sep 02 Javascript
详解ES6实现类的私有变量的几种写法
Feb 10 Javascript
jQuery的基本概念与高级编程
May 14 #Javascript
javascript实现简单的省市区三级联动
May 14 #Javascript
javascript实现仿腾讯游戏选择
May 14 #Javascript
JavaScript实现Flash炫光波动特效
May 14 #Javascript
javascript基于DOM实现省市级联下拉框的方法
May 14 #Javascript
javascript搜索框效果实现方法
May 14 #Javascript
javascript操作ul中li的方法
May 14 #Javascript
You might like
关于php mvc开发模式的感想
2011/06/28 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
Python装饰器知识点补充
2018/05/28 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
python实现tail -f 功能
2020/01/17 Python
python烟花效果的代码实例
2020/02/25 Python
python numpy实现rolling滚动案例
2020/06/08 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
Python实现石头剪刀布游戏
2021/01/20 Python
动态密码技术
2012/10/18 面试题
大学毕业生通用自荐信范文
2013/10/31 职场文书
日化店促销方案
2014/03/26 职场文书
法定代表人授权委托书
2014/09/19 职场文书
八年级作文之友情
2019/11/25 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python