JS对文字进行编码涉及3个函数:escape, encodeURI, encodeURIComponent,相应3个解码函数:unescape, decodeURI, decodeURIComponent

1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。
例如:
<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');</script>
    2、 进行url跳转时可以整体使用encodeURI
例如: Location.href=encodeURI(http://cang.baidu.com/do/s?word=中国asp之家&ct=21);
用法:
页面javascript:
    ...  
    var url = 'policy.do?method=searchSuggest&word=' + str+"&now="+new Date().getTime();  
    url = encodeURI(url);  
    url = encodeURI(url);  
    ...
后台程序中:
    ...  
    String word = request.getParameter("word");  
    word = java.net.URLDecoder.decode(word,"UTF-8");  
    ... 

    3、 js使用数据时可以使用escape
例如:搜藏中history纪录。
4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用 encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)(中国asp之家注:就是说如果你 的页面编码是gb2312的话,服务器端接收的将是乱码)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
附上这个三个函数的介绍:
escape 方法
对 String 对象编码以便它们能在所有计算机上可读,
escape(charString)
    必选项 charstring 参数是要编码的任意 String 对象或文字。
说明
    escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。
字符值大于 255 的以 %uxxxx 格式存储。
注意  escape 方法不能够用来对统一资源标示码 (URI) 进行编码。对其编码应使用 encodeURI 和encodeURIComponent 方法。
encodeURI 方法
将文本字符串编码为一个有效的统一资源标识符 (URI)。
encodeURI(URIString)
    必选的 URIString 参数代表一个已编码的 URI。
说明
    encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:":"、"/"、";" 和 "?"。请使用 encodeURIComponent 方法对这些字符进行编码。
encodeURIComponent 方法
将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。
encodeURIComponent(encodedURIString)
    必选的 encodedURIString 参数代表一个已编码的 URI 组件。
说明
encodeURIComponent 方法返回一个已编码的 URI。如果您将编码结果传递给 decodeURIComponent,那么将返回初始的字符串。因为 encodeURIComponent 方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结果被作为请求发送到 web 服务器时将是无效的。如果字符串中包含不止一个 URI 组件,请使用 encodeURI 方法进行编码。
原文连接:http://blog.sina.com.cn/s/blog_61dfec800100iql8.html

转载于:https://blog.51cto.com/harlen/1094146

使用Ajax时常用的转码方法encodeURI,escape,encodeURI相关推荐

  1. 超实用Word技巧分享!这才是使用Word时常用到的高效率方法

    使用Word这么久了,突然发现自己掌握了不少实用的技巧.这些技巧看似普通简单,但是在学习上还是工作上,都是经常使用的. 下面跟大家分享我在使用Word时,总结的一些技巧,希望对大家有帮助. 一.Wor ...

  2. jQuery 发起 Ajax 请求最常用的三个方法

    浏览器中提供的 XMLHttpRequest 用法比较复杂,所以 jQuery 对 XMLHttpRequest 进行了封装,提供了一系列 Ajax 相关的函数,极大地降低了 Ajax 的使用难度. ...

  3. ajax返回状态码为零,ajax - HTTP请求返回状态码0时的含义是什么?

    ajax - HTTP请求返回状态码0时的含义是什么? JavaScript网络调用(例如fetch或XMLHttpRequest)或任何其他类型的HTTP网络请求在HTTP状态代码为0时失败意味着什 ...

  4. cfd计算linux windows,CFD计算分析时常用的数值模拟方法 | 坐倚北风

    在运用计算流体力学CFD进行数值计算分析仿真时常用的离散化方法有:有限差分法.有限元法和有限体积法. 1.有限差分法 有限差分法是数值解法中最经典的方法.它是将求解区域划分为差分网格,用于有限个网格节 ...

  5. 【ajax】readyState=4并且status=200时,还进error方法

    转载自  [ajax]readyState=4并且status=200时,还进error方法 今天在使用jquery.ajax方法去调用后台方法时,ajax中得参数data类型是"JSON& ...

  6. ajax提交时页面转圈,jquery的ajax提交时loading提示的处理方法

    方法1:使用ajaxStart方法定义一个全局的"加载中..."提示 $(function(){ $("#loading").ajaxStart(functio ...

  7. ajax没返回响应数据,jQuery的Ajax时无响应数据的解决方法

    jQuery的Ajax时无响应数据的解决方法 复制代码 代码如下: $.ajax( { type: "POST", url: "/MemberComment.aspx/G ...

  8. onsubmit校验表单时利用ajax的return false无效解决方法

    代码: function checkNewEmail(){var re_email=new RegExp("\\w+@\\w+\\.\\w+\\.?\\w*");var newEm ...

  9. java jar 源码乱码,java使用jar包时出现乱码的解决方法

    java使用jar包时出现乱码的解决方法 发布时间:2020-06-17 17:06:29 来源:亿速云 阅读:105 作者:元一 jar包是什么: jar(Java Archive,Java归档文件 ...

  10. extjs 方法执行顺序_透析Extjs的Ext.js源码(二)能在定义时就能执行的方法的写法 function(){...}...

    /** * 第二部分:能在定义时就能执行的方法的写法 function(){...}(); */ /** * 一.普通的方法的定义与执行 */ // 1-1.普通的方法定义,不带返回值的情况 fun ...

最新文章

  1. 在Mac上通过VMware Fushion 15.1配置静态IP虚拟机实录
  2. 【Java并发编程】面试必备之线程池
  3. 再谈select, iocp, epoll,kqueue及各种I/O复用机制 - Shallway - 博客频道 - CSDN.NET
  4. 阿里云OSS linux使用备忘录
  5. 浮动—春联(文字竖直排列)
  6. 工作47:继续理解父子组件
  7. 潢川高中2021高考成绩查询,潢川高中2020年秋季学期高一期中考试成绩分析
  8. Python实现自动推本地github博客到远程仓库
  9. h5 history
  10. 计算机视觉实战(二)图像基本操作
  11. 2020年最值得关注的28款区块链游戏
  12. 网页保存到mysql数据库_把网页数据保存到数据库
  13. SQL按每5分钟或者10分钟分组统计数据
  14. 浅析vendor_init
  15. plot指定线段形状和颜色_形状和颜色背后的心理学
  16. Apple有史以来屏幕最大的手机iPhone 12最新超详细揭秘
  17. MySql超详细分析(InnoDb存储引擎,日志文件,调优,索引,主从复制简单操作等)
  18. 莮亾芣湜唥洫,莮亾竾浍哭
  19. 小程序--实现细线边框
  20. 机器学习(一):概述

热门文章

  1. 不可或缺的PrepareImageRegions函数
  2. Mac:VMware 虚拟机 连接手机
  3. React 一些相关的技巧
  4. HDU 4649 Professor Tian(概率DP)题解
  5. Linux下如何从mysql数据库里导出导入数据
  6. Spring入门(三)
  7. Servlet(二)GenericServlet
  8. HDU1847 博弈论 水题
  9. 结构等待队列[网络编程]select流程分析
  10. 使用using关键字来自动清除对象资源