编码

javascript中的编码函数有三种

  • escape(string)
  • encodeURI(string)
  • encodeURIComponent(string)

解码

相应的解码函数也有以下三种

  • unescape(string)
  • unencodeURI(string)
  • unencodeURIComponent(string)

以上三种编码函数都是将指定的字符串按照各自的方式转变为浏览器或脚本可识别的形式,常见于对汉字进行操作,避免出现乱码的情况

用法及区别

  • escape(string)

    • 将字符串string转变为十六进制的转义序列,但不会对ASCII字符和数字进行编码,也不会对以下标点符号进行编码:-_./
    • 例如
    escape('汉字 你123abcABC'); //"%u6C49%u5B57%20%u4F60123abcABC"
    escape('-_./'); //"-_./"
    escape('"'); //"%22"
    escape(":"); //"%3A"
    • 说明

      从以上结果中表明:escape(string)除字母、数字以及一些特殊字符(-_./)外,都会对其进行编码,区别在于,汉字和中文标点符号被转换为%u开头的四位十六进制数(%u6C49),英文标点符号被转换为%开头的两位十六进制(%20
  • encodeURI(string)

    • 将字符串string转变为十六进制的转义序列,但不会对ASCII字符和数字进行编码,也不会对以下符号进行编码:-_.!~*'/();?:@&=+$,#
    • 例如
    encodeURI('汉'); //"%E6%B1%89"
    encodeURI('汉字 你123abcABC'); //"%E6%B1%89%E5%AD%97%20%E4%BD%A0123abcABC"
    encodeURI("-_.!~*'/();?:@&=+$,#"); //"-_.!~*'/();?:@&=+$,#"
    encodeURI('"'); //"%22"
    • 说明

      从以上结果中表明:encodeURI(string)除字母、数字以及一些特殊字符(-_.!~*'/();?:@&=+$,#)外,都会对其进行编码,区别在于,汉字和中文标点符号被转换为三组%开头的两位十六进制数(%E6%B1%89),英文标点符号被转换为%开头的两位十六进制(%20
  • encodeURIComponent(string)

    • 将字符串string转变为十六进制的转义序列,但不会对ASCII字符和数字进行编码,也不会对以下符号进行编码:-_.!~*'()
    • 例如
    encodeURIComponent('汉'); //"%E6%B1%89"
    encodeURIComponent('汉字 你123abcABC'); //"%E6%B1%89%E5%AD%97%20%E4%BD%A0123abcABC"
    encodeURIComponent("-_.!~*'()"); //"-_.!~*'()"
    encodeURIComponent('"'); //"%22"
    • 说明

      从以上结果中表明:encodeURIComponent(string)除字母、数字以及一些特殊字符(-_.!~*'())外,都会对其进行编码,区别在于,汉字和中文标点符号被转换为三组%开头的两位十六进制数(%E6%B1%89),英文标点符号被转换为%开头的两位十六进制(%20

总结

  • 综上

    • escape(string)不能用于对url进行编码,多用于返回字符的Unicode编码
    • encodeURI(string)可以对整个url进行编码
    • encodeURIComponent(string)不能应用于整个url编码,多用于对地址后的参数值进行编码

escape、encodeURI和encodeURIComponent的区别及使用的更多相关文章

  1. JS中 escape, encodeURI 和 encodeURIComponent的区别

    为避免Url字符串在传递过程中的乱码,我们一般需要对字符串进行处理. 在Javascript中实现此功能的全局对象有3个,分别是:escape(),  encodeURI()  和 encodeURI ...

  2. escape encodeURI和encodeURIComponent的区别

    escape(与之对应->unescape) escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读.编码之后的效果是%XX或者%uXXXX这种形式 ...

  3. escape(), encodeURI()和encodeURIComponent()(转)

      escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法,而他们之间的异同却困扰了很多的Javascript初学 ...

  4. encodeURI与encodeURIComponent的区别

    webservice输出时选择的格式与Content-Type报文头有关 encodeURI与encodeURIComponent的区别:后者会将URI进行编码(包括"://")

  5. Javascript中escape(), encodeURI()和encodeURIComponent()之精析与比较

    escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法,而他们之间的异同却困扰了很多的Javascript初学者, ...

  6. 深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  7. escape、encodeURI和encodeURIComponent的区别

    1.简单解释 简单来说,escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读. 编码之后的效果是%XX或者%uXXXX这种形式. 其中 ASCII字母. ...

  8. Javascript中escape()、encodeURI()、encodeURIComponent()的区别

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  9. js 中escape,encodeURI,encodeURIComponent的区别

    escape:方法不能能够用来对统一资源(URI)进行编码,对其编码应使用encodeURI和encodeURIComponent encodeURI:encodeURI ()方法返回一个编码的 UR ...

随机推荐

  1. 201521123063 《Java程序设计》 第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前 ...

  2. 2017Java课程设计201521123007

    1. 课程设计博客链接 项目地址 2. 个人负责模块或任务说明 ps:一个人做的项目 一个登录jsp文件,登录成功转入商品界面, 一个商品jsp文件,显示所有商品信息,数据从MySql数据库导入,可以 ...

  3. 201521123037 《Java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  4. 201521123068 《java程序设计》 第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1.MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己 ...

  5. 框架应用:Spring framework (五) - Spring MVC技术

    软件开发中的MVC设计模式 软件开发的目标是减小耦合,让模块之前关系清晰. MVC模式在软件开发中经常和ORM模式一起应用,主要作用是将(数据抽象,数据实体传输和前台数据展示)分层,这样前台,后台,数 ...

  6. 更自然的解决字典数组插入nil而导致crash

    最近在优化项目虽说小优化一直在持续,大版本的优化也进行了两个版本了但是bug列表依旧血淋淋的摆在那里.有的看一眼也能找到问题所在但是有的就是想破头也不知道问题在哪里,毕竟整个项目经过了N个人的手代码风 ...

  7. Q:哪里可以注册hk域名?A:这里!这里!(小白绢挥手)

    注意!前方有一条比你妈手中的竹板还硬的推文出没······ 咳咳,清清喉咙,预备唱! (请自动代入甜蜜蜜的曲调) 甜蜜蜜你笑的甜蜜蜜  好像花儿开在春风里  开在春风里 在哪里在哪里见过你  .HK域 ...

  8. pig hive hbase比较

    Pig 一种操作hadoop的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走下坡路了.当初雅虎自己慢慢退出pig的维护之后将它开源贡献到开源社区由所有爱好者来维护.不过现在还是有些公司在用,不过我 ...

  9. jquery实现点击div外隐藏div

    html <div style="width:100px;height:100px;border:1px solid #ff0" id="div"> ...

  10. 献身说法---修复bug时的一些小技巧

    最近,修复了项目当中的一些bug,觉着有些思路可以分享出来供大家借鉴. 场景一 开发环境中系统正常运行,测试环境中,部分机器未能正常运行. 解决过程:远程连接了测试环境中的机器,观察了系统的运行情况, ...