虽然escape()、encodeURI()、encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤。但后两者是将字符串转换为UTF-8的方式来传输,解决了页面编码不一至导致的乱码问题。

例如:发送页与接受页的编码格式(Charset)不一致(假设发送页面是GB2312而接收页面编码是UTF-8),使用escape()转换传输中文字串就会出现乱码问题。
以下是JS下对URL进行编/解码的各种方法:

escape方法:就对@*+/ A-Z 0-9 a-z这些字符不编码,其它非ASCII字符都会编码以%XX编码替换,解码使用unescape,escape 方法不能用来对“统一资源标识符”(URI) 进行编码。对其编码应使用 encodeURI 和encodeURIComponent 方法。

encodeURI():对! @ # $ &   * ( ) = : / ; ? + ' A-Z 0-9 a-z,其它的字符都会被编码,解码使用decodeURI();

如果想使更多的字会被编码,例:/..,请使用encodeURIComponent()方法,被此方法编码后,参数传递给服务器就是一种无效的字符,解码使用decodeURIComponent()

原文地址:http://www.cnblogs.com/xiaohui108/archive/2010/11/23/1885625.html

最新文章

  1. x64内联汇编注意点
  2. IOS开发中有用的第三方库
  3. git .gitignore 文件 解决二进制文件冲突问题
  4. html5 Canvas API
  5. 可学习的多人人脸识别程序(基于Emgu CV)
  6. (求助大牛)关于vs2010上的AVS代码bug问题~~
  7. 单例模式在Unity中的应用
  8. java中读取程序运行时间
  9. hdu 4597 Play Game(区间dp,记忆化搜索)
  10. DOUAudioStreamer 中kqueue的应用
  11. 本地phpstudy时常停机连接失败,php.ini文件中9000端口问题
  12. java安全框架shiro(一)
  13. JAVA中最容易让人忽视的基础。
  14. PYTHON使用入门
  15. java中的http请求的封装(GET、POST、form表单形式)
  16. leetcode-217存在重复元素
  17. mysql 计算两个日期之间的工作日天数
  18. 灯 & 树
  19. format()的简单实用 笔记
  20. TL Cop

热门文章

  1. ios中Raw文件系统常用文件夹
  2. SecureCRT连接虚拟机中的Linux系统(Ubuntu)
  3. Ant 修改项目pom.xml文件应用
  4. 将一个应用程序添加做成windows服务
  5. Linux RedHat无法安装软件问题(No package gcc available. Nothing to do)
  6. python 自动化之路 day 10 协程、异步IO、队列、缓存
  7. zabbix短信网关调用问题总结
  8. 第六章 Qt布局管理器Layout
  9. excel 导入功能
  10. JavaScript jQuery 入门回顾