JavaScript的escape和encodeURI
浏览器编码的函数简介escape(),encodeURI(),encodeURIComponent()
1、escape()
escape()是js编码函数中最古老的一个。虽然这个函数现在已经不提倡使用了,但是由于历史原因,很多地方还在使用它,所以有必要先从它讲起。
实际上,escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。比如“春节”的返回结果是%u6625%u8282,也就是说在Unicode字符集中,“春”是第6625个(十六进制)字符,“节”是第8282个(十六进制)字符。
例如:
|
还有两个地方需要注意。
首先,无论网页的原始编码是什么,一旦被Javascript编码,就都变为unicode字符。也就是说,Javascipt函数的输入和输出,默认都是Unicode字符。这一点对下面两个函数也适用。
|
其次,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相关推荐
- escape与encodeURI、encodeURIComponent的区别
比较js中的escape.encodeURI.encodeURIComponent escape: escape是会除@*_-+./以外的所有标点符号.空格符.特殊符及非ASC码的所有字符进行 ...
- C#实现javascript的escape
C#实现javascript的escape private string escape(string s) { StringBuilder sb = new S ...
- escape、encodeURI 、encodeURIComponent 编码与解码
JS escape.encodeURI .encodeURIComponent 编码与解码 本文讨论如何对传递参数用JS编码与解码 1:编码与解码方法的对应关系 escape ------------ ...
- js unescape 对应php的函数,php实现Javascript的escape和unescape函数
由于需要用到php调用js文件,在网上找了相关的资料,并改写了相关的方法. php实现 Javascript的escape函数方法: function escape($str) { preg_matc ...
- JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
JS 字符串编码函数(解决URL特殊字符传递问题):escape().encodeURI().encodeURIComponent()区别详解 参考文章: (1)JS 字符串编码函数(解决URL特殊字 ...
- python unescape函数_Python中unescape JavaScript中escape的字符
遇到一个问题需要用Python把JavaScript中escape的中文给还原,但找了大半天,也没有找到答案,只好自己深入研究解决方案. 我们先来看在js中escape一段文字的编码 a = esca ...
- js unescape java_java中对应javascript的escape和unescape的工具
/** * 加码解码工具 * @author lwm * */ public class Encode { /* * 对应javascript的escape()函数, 加码后的串可直接使用javasc ...
- html escape函数,JavaScript中escape()函数的使用方法
导语:我们在传递参数时,为了避免服务器端出现乱码,常常会要用到编码函数,urlencode.HtmlEncode.base64_encode等.本文给大家详细讲解JavaScript中escape() ...
- javascript之url转义escape()、encodeURI()和decodeURI()
我们可以知道:escape()除了 ASCII 字母.数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法.而encodeURI() 用于编码整个URI,因 ...
最新文章
- 思略特报告解读:智能制造企业如何实现数字化?
- EXCEL公式、函数、图表应用技巧800问
- AttributeError: module ‘tensorflow‘ has no attribute ‘app‘
- android制作闪动的红心
- 程序和计划任务管理( 查看进程ps,控制进程,终止命令进程,top命令,at一次性任务,crontab周期任务)
- Unity游戏中的一些规范和优化建议
- Nike Kyrie 1 Performance Review
- Android Studio 编译异常Could not execute build using Gradle installation解决办法
- Apriori算法+python实现
- Embeded linux之地址映射
- win7下的的IVF2011+VS2010以及OpenMPI的安装与配置
- 机器学习----朴素贝叶斯详解
- stm32 控制 lcd12864
- 隐马尔可夫模型(四)学习问题
- wex5 页面跳转
- java牛客网输入输出
- 如何在服务器上运行Recorder.js,录音上传到服务器使用jwagener的recorder.js和recorder.swf...
- 十张图带你看中国交通变迁
- 火狐浏览器如何导入和导出书签收藏夹
- 光耦,磁耦,容耦的区别