encodeURI是对整个uri进行编码的,而encodeURIComponent是对uri中部分内容进行编码。

  在进行url的字符串拼接时,需要进行两次encodeURI。

  只进行一次encodeURI,服务器在进行request.getParameter()时会自动进行一次解码,而这个解码字符集可能使用的是操作系统默认字符集。

  如果进行两次encodeURI,在服务器端,首先通过request.getParameter()自动进行第一次解码(可能是gb2312,gbk,utf-8,iso-8859-1等字符集,对结果无影响)得到ascii字符,然后再使用UTF-8进行第二次解码,通常使用java.net.URLDecoder("","UTF-8")方法。

  两次编码两次解码的过程为:

  UTF-8编码->UTF-8(iso-8859-1)编码->iso-8859-1解码->UTF-8解码,编码和解码的过程是对称的,所以不会出现乱码。

  encodeURL函数主要是来对URI来做转码,它默认是采用的UTF-8的编码.

  UTF-8编码的格式:一个汉字来三个字节构成,每一个字节会转换成16进制的编码,同时添加上%号

最新文章

  1. CUDA代码的高亮设置
  2. C#开发微信公众平台-就这么简单(附Demo)(转)
  3. mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
  4. MVC validation
  5. PAT 1012
  6. 20151217jquery学习笔记--注册表单
  7. sharepoint 2010 如何使用sharepoint多媒体视频播放media webpart功能
  8. NOR flash和NAND flash区别,RAM 和ROM区别
  9. Ubuntu 10.04下安装Opengl glx
  10. mysql innodb init function error
  11. form 表单 enctype 属性-(转自w3c)
  12. Linux企业运维人员最常用150个命令汇总
  13. oracle 删除重复记录
  14. JOI 2018 Final 题解
  15. vscode 配置php
  16. mysql创建表和数据库
  17. tensorflow 笔记7:tf.concat 和 ops中的array_ops.concat
  18. Structs复习 Path问题
  19. keepalived主从及双主配置
  20. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

热门文章

  1. PHP DDOS的UDP攻击,TCP攻击,和CC攻击的核心代码
  2. tcpdump 选项及过滤规则
  3. Dockerfile详解(二)
  4. iOS 添加启动图片
  5. 用int还是用Integer?
  6. unity3d生命周期
  7. Spring框架第一天
  8. python 定义函数 调用函数
  9. laravel更改默认的登录密码加密方式
  10. 基于bootstrap的jQuery多级列表树插件