浏览器编码的函数简介escape(),encodeURI(),encodeURIComponent()

1、escape()

escape()是js编码函数中最古老的一个。虽然这个函数现在已经不提倡使用了,但是由于历史原因,很多地方还在使用它,所以有必要先从它讲起。

实际上,escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。比如“春节”的返回结果是%u6625%u8282,也就是说在Unicode字符集中,“春”是第6625个(十六进制)字符,“节”是第8282个(十六进制)字符。

例如:

javascript:escape("春节");

//输出 "%u6625%u8282"

javascript:escape("hello word");

//输出 "hello%20word"

还有两个地方需要注意。

首先,无论网页的原始编码是什么,一旦被Javascript编码,就都变为unicode字符。也就是说,Javascipt函数的输入和输出,默认都是Unicode字符。这一点对下面两个函数也适用。

javascript:escape("\u6625\u8282");

//输出 "%u6625%u8282"

 javascript:unescape("%u6625%u8282");

//输出 "春节"

 javascript:unescape("\u6625\u8282");

//输出 "春节"

其次,escape()不对“+”编码。但是我们知道,网页在提交表单的时候,如果有空格,则会被转化为+字符。服务器处理数据的时候,会把+号处理成空格。所以,使用的时候要小心。

总结

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

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

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


enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www-form-urlencoded。 。。

application/x-www-form-urlencoded 窗体数据被编码为名称/值对。这是标准的编码格式。

字符串中除了 -_. 之外的所有

非字母数字字符都将被替换成百分号(%)后跟两位十六进制数

空格则编码为加号(+)
text/plain 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。

multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分

JavaScript的escape和encodeURI相关推荐

  1. escape与encodeURI、encodeURIComponent的区别

    比较js中的escape.encodeURI.encodeURIComponent escape:     escape是会除@*_-+./以外的所有标点符号.空格符.特殊符及非ASC码的所有字符进行 ...

  2. C#实现javascript的escape

    C#实现javascript的escape private string escape(string s)         {             StringBuilder sb = new S ...

  3. escape、encodeURI 、encodeURIComponent 编码与解码

    JS escape.encodeURI .encodeURIComponent 编码与解码 本文讨论如何对传递参数用JS编码与解码 1:编码与解码方法的对应关系 escape ------------ ...

  4. js unescape 对应php的函数,php实现Javascript的escape和unescape函数

    由于需要用到php调用js文件,在网上找了相关的资料,并改写了相关的方法. php实现 Javascript的escape函数方法: function escape($str) { preg_matc ...

  5. JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解

    JS 字符串编码函数(解决URL特殊字符传递问题):escape().encodeURI().encodeURIComponent()区别详解 参考文章: (1)JS 字符串编码函数(解决URL特殊字 ...

  6. python unescape函数_Python中unescape JavaScript中escape的字符

    遇到一个问题需要用Python把JavaScript中escape的中文给还原,但找了大半天,也没有找到答案,只好自己深入研究解决方案. 我们先来看在js中escape一段文字的编码 a = esca ...

  7. js unescape java_java中对应javascript的escape和unescape的工具

    /** * 加码解码工具 * @author lwm * */ public class Encode { /* * 对应javascript的escape()函数, 加码后的串可直接使用javasc ...

  8. html escape函数,JavaScript中escape()函数的使用方法

    导语:我们在传递参数时,为了避免服务器端出现乱码,常常会要用到编码函数,urlencode.HtmlEncode.base64_encode等.本文给大家详细讲解JavaScript中escape() ...

  9. javascript之url转义escape()、encodeURI()和decodeURI()

    我们可以知道:escape()除了 ASCII 字母.数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法.而encodeURI() 用于编码整个URI,因 ...

最新文章

  1. 思略特报告解读:智能制造企业如何实现数字化?
  2. EXCEL公式、函数、图表应用技巧800问
  3. AttributeError: module ‘tensorflow‘ has no attribute ‘app‘
  4. android制作闪动的红心
  5. 程序和计划任务管理( 查看进程ps,控制进程,终止命令进程,top命令,at一次性任务,crontab周期任务)
  6. Unity游戏中的一些规范和优化建议
  7. Nike Kyrie 1 Performance Review
  8. Android Studio 编译异常Could not execute build using Gradle installation解决办法
  9. Apriori算法+python实现
  10. Embeded linux之地址映射
  11. win7下的的IVF2011+VS2010以及OpenMPI的安装与配置
  12. 机器学习----朴素贝叶斯详解
  13. stm32 控制 lcd12864
  14. 隐马尔可夫模型(四)学习问题
  15. wex5 页面跳转
  16. java牛客网输入输出
  17. 如何在服务器上运行Recorder.js,录音上传到服务器使用jwagener的recorder.js和recorder.swf...
  18. 十张图带你看中国交通变迁
  19. 火狐浏览器如何导入和导出书签收藏夹
  20. 光耦,磁耦,容耦的区别

热门文章

  1. word图片插入不清晰
  2. 地址总线、字长和寻址空间的关系
  3. oracle 10g与oracle 11g的不同
  4. SSL证书的加密算法有哪些?
  5. PHP特性整合 php7特性
  6. 3.项目立项管理+信息系统项目管理+野马合集
  7. Sunday 算法-JavaScript实现
  8. 【ansys常见命令集合】
  9. linux c++ 文件修改时间,linux下C获取系统时间的方法
  10. Debug Error: abort() has been called解决办法