`
peswe
  • 浏览: 14884 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

08/12/29

阅读更多


escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法

escape() 方法
escape方法以Unicode格式返回一个包含传入参数内容的string类型的值。 Escape方法会将传入参数中所有的空格、标点符号、重音字符以及其它任何非ASCII字符替换为%xx的编码形式,其中xx与其所表示的字符的16进制数表示形式相同。如空格字符的16进制表示形式为0x20,则此时xx应为20,即escape(‘ ’) 返回“%20”

encodeURI()方法
encodeURI方法返回一个经过编码的URI。如果将encodeURI方法的编码结果传递给decodeURI方法作参数,则能得到原始的未编码的字符串。需要注意到是encodeURI方法不编码如下字符":", "/", ";", and "?"。如果想要编码这些字符,请使用encodeURIComponent方法。


encodeURIComponent()方法

encodeURIComponent方法返回一个编码过的URI。如果将encodeURIComponent方法的编码结果传递给 encodeURIComponent方法作参数,则能得到原始的未编码的字符串。因为encodeURIComponent方法会编码所有的字符,所以如果待编码的字符串是用来表示一个路径(如/dir1/dir2/index.htm)时,就一定要小心使用了。‘/’符号会被其编码之后,将不再是一个有效的路径标识符,所以不能被web服务器正确地识别。当字符串包含一个单独的URI component(指?后面的请求参数)的时候,请使用此方法。

有什么区别?何时使用?

通过上面的介绍可以看出,MS的文档明显要比Mozilla详细、易懂一些,但是它们表达的都是一个意思。但是escape(), encodeURI()和 encodeURIComponent()有什么异同,它们分别适用于那种特定的情况呢?

escape方法并不编码字符+。而我们知道,在用户提交的表单字段中,如果有空格,则会被转化为+字符,而服务器解析的时候则会认为+号代表空格。由于这个缺陷,escape方法并不能正确地处理所有的非ASCII字符,你应当尽量避免使用escape方法,取而代之,你最好选择 encodeURIComponent()方法。

escape()不编码的字符:@*/+

相对于使用escape方法,使用encodeURI方法会显得更专业一些。当你需要编码一整个URI的时候,你可以使用此方法,因为URI中的合法字符都不会被编码转换。需要注意到是字符’也是URI中的合法字符,所以也不会被编码转换。

encodeURI() 不编码的字符: ~!@#@{content}*()=:/,;?+'

encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的。需要注意到是字符’也是URI中的合法字符,所以也不会被编码转换。

encodeURIComponent()不编码的字符: ~!*()'
分享到:
评论

相关推荐

    msscript控件及其中文帮助等

    1998/08/05 04:12 <DIR> CHINESE 1998/07/29 18:59 109,969 DISPEX.DLL 1998/07/29 18:59 1,209,970 JSCRIPT.DLL 1997/05/24 17:16 2,154 MSSCRIPT.CNT 1997/05/24 17:16 70,780 MSSCRIPT.HLP 1998/05/01 08:39 133,...

    android手机开发利器B4a最新库文件(截止到20170424)

    2013/11/04 周一 21:08 12,279 AHLocale.jar 2013/11/04 周一 21:08 44,600 AHLocale.xml 2014/05/12 周一 07:31 29,866 AHNavigationDrawer.jar 2014/05/12 周一 07:30 11,206 AHNavigationDrawer.xml 2013/07/09 ...

    C++自动生成数字地面模型dem

    contourView.h 2008/12/19 15:08 C/C++ Header 3 KB Distant.cpp 2008/12/3 12:33 C++ Source 1 KB Distant.h 2008/12/3 12:31 C/C++ Header 2 KB MainFrm.cpp 2008/12/1 21:29 C++ Source 3 KB MainFrm.h 2008/12/1...

    银灿科技IS902量产工具V2.05.00.16(2011/05/10).rar

    89D5D12E684=PF29F08G08LCNC1-89380026865=PF29F16G16MCNC1-89380026866=PF29F32G16NCNC1-894801A6867=PF29F32G16NCND1-894821A6858=JS29F16G08AAND2-89482026A99=JS29F32G08CAND2-89482026A910=JS29F64G08JAND2-...

    SMI SM3257ENLT量产工具v2.5.06_12/12/21.rar

    K9ABGD8U0BSupport Micron 25nm TLC B74 SDR 1CE/2Die MT29F256G08EJAAASupport Toshiba/scandisk 19nm 32gb/64gb tlcSupport Sandisk 19nm 128gb tlc 1ce/2die:sdtnqcbma-032gEnhance 19nm 8k 2...

    BMDThread V1.8

    Beta V1.0b0 04/29/1999 Released Beta V1.0b1 05/24/1999 The Synchro method editors have been added. Beta V1.0b2 08/01/2001 Some modifications by Walter Campelo. Beta V1.0b3 08/03/2001 Ported to Delphi ...

    链接:https://pan.baidu.com/s/1uDgTJnJca8p79-vCnzXHFA 提取码:bnpq

    24考研大纲即将发布 链接:https://pan.baidu.com/s/1uDgTJnJca8p79_vCnzXHFA 提取码:bnpq

    实用小工具超级工具箱

    2009/08/12 12:37 1,269,760 超级巡警暴力文件删除器.EXE 2007/10/26 01:05 513 顽固目录删除器.CMD 2007/06/23 07:42 147,594 顽固软件删除工具.exe 12 个文件 3,042,623 字节 D:\安装包\实用小工具超级工具箱\...

    mt29f1g08abafa.pdf

    12. Quality and Reliability: - 耐用性:可支持100,000次编程/擦除循环。 - 数据保留:符合JESD47G标准,未循环使用时在85°C下保持10年。 - Uncycled Data Retention: 在85°C下持续工作24/7长达10年。 13. ...

    C++调用she格式皮肤(附150个she皮肤)

    2009/08/18 23:23 12,564 炫绿.she 2011/11/01 16:14 12,564 炫绿亮彩.she 2010/07/31 12:37 18,056 牛仔裤.she 2011/11/01 16:14 19,770 白色火焰.she 2011/11/01 16:14 16,746 白色简约.she 2009/02/22 16:05 31,...

    VMware VCP510认证考试最全资料,包含中文1套英文3套

    2012/09/29 08:42 72,710,197 The Official VCP5 Certification Guide.pdf 2013/03/30 08:47 18,617,345 VCP5 VMware Certified Professional on vSphere 5 Study Guide Exam VCP-510.pdf 2013/10/14 00:11 6,526,...

    MT29F32G08CBABA.pdf

    - 时钟速率:12ns (DDR)。 - 每引脚读写吞吐量:166MT/s。 2. **异步I/O性能**: - 支持高达异步定时模式4。 - tRC/tWC: 25ns (MIN)。 3. **阵列性能**: - 读取页面时间:50µs(MAX)。 - 编程页面时间:900µ...

    MT29F64G08.pdf

    文档涉及到的MT29F64G08CFACA、MT29F64G08CBACA以及MT29F64G08CEACA是NAND闪存芯片的产品型号,它们都是由Micron公司制造的NAND闪存产品。NAND闪存是一种非易失性存储技术,广泛用于各种电子产品中,例如USB闪存驱动...

    斐讯 K2刷机工具,刷机包,刷后样式,刷机教程

    2022/09/09 12:03 <DIR> breed 2021/09/27 14:28 1,579 Factory.tgz 2021/05/19 20:25 <DIR> fxk2sjgj 2022/08/18 15:35 <DIR> k2p 2022/08/05 17:42 <DIR> k2p刷机 2022/05/26 14:01 111,763 PandoraBox1611_1.png ...

    PowerPC 405 Embedded Cores Documents (来自ibm网站)

    JTAG TAP Controller with PowerPC 4xx Cores (03/29/10) Attaching PowerPC 405 Core to PLB Crossbar Arbiter (04/27/09) VMC SWIFT Model Overview (02/12/09) Optimized Code Using DSP Instructions for ...

    VC资料代码示例

    2008/01/21 12:39 29,999 mydll.rar 2005/01/29 18:56 53,722 pconline_vc_txt.zip 2014/11/11 19:57 0 readme.txt 2007/12/18 16:54 12,058 SDK_hello.rar 2011/12/19 23:41 1,103,084 SimLibrary(简洁图书馆).rar ...

    ansible2.7及配套模块源代码安装包

    安装包含以下文件: 2018/10/10 17:11 11,775,406 ansible-2.7.0rc4.tar.gz 2018/10/12 17:18 104,964 asn1crypto-0.24.0....2018/10/12 17:13 29,860 six-1.11.0.tar.gz 2018/10/11 14:52 599,727 yaml-0.2.1.tar.gz

    spring_MVC源码

    12. <context:component-scan base-package="com.mvc.controller" /> 13. <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> 14. ...

    谷歌股价 2004-08-19 到 2017-12-29 https://blog.csdn.net/Linli52236224

    import pandas as pd import pandas_datareader.data as pdr def load_financial_data( start_date, end_date, output_file='', stock_symbol='GOOG' ): if len(output_file) == 0: output_file = stock_symbol+...

    西门子2014年最新授权工具原版 Simatic_EKB_Install_2013_12_25.zip

    29/06/2008 add keys for PID Tools v5.2, D7-SYS v7.0, PowerControl, RF-Manager 14/03/2008 add keys for Simatic IT and multikey description 23/02/2008 add keys for CEMAT v7.0 , WinCC v6.2 and PCS7 v7.0 ...

Global site tag (gtag.js) - Google Analytics