<a target="_blank" href="ftpFileAction!downloadFile.action?filename=测试.xml">点击下载</a>

如果当前页面编码是utf-8.

这里是main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

以及head头

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

并且main.jsp本身的文件编码是utf-8.

如果是post方式,Servlet后台设置request.setCharacterEncoding('utf-8')后一定得到正确中文。

但对于get方式,get方式提交参数若包含中文,

在我本机测试,ie下提交的使用iso-8859-1转码gbk可得到正常中文。

filename=new String(filename.getBytes("ISO-8859-1"),"gbk");

在firefox下提交的参数在Servlet中使用iso-8859-1转码utf-8可得到正常中文。

filename=new String(filename.getBytes("ISO-8859-1"),"utf-8");

一定要转码的原因是对于get方式提交的参数,tomcat默认不会使用request.setCharacterEncoding的编码方式转码,而是使用ISO-8859-1。

要保证各浏览器兼容性,

可以在get方式提交参数时,把参数进行转码。

encodeURI(适合编码整个URI)和encodeURIComponent(适合编码URI的一部分参数)

js脚本:

filename=encodeURIComponent('测试.xml');

'<a target="_blank" href="ftpFileAction!downloadFile.action?filename='+filename+'">点击下载</a>'

注明:

encodeURI, encodeURIComponent 是 UTF-8 的
escape 是  Unicode 的

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

最新文章

  1. Linux下Keepalived+LVS-DR模式配置高可用负载均衡集群
  2. Jenkins中构建Testcomplete项目的方法介绍
  3. Python的安装和详细配置
  4. Spring知识点总结大全(2)
  5. 使用IronPython给.Net程序加点料
  6. Linux I2C工具查看配置I2C设备【转】
  7. 【资料分享】 OpenCV精华收藏
  8. String - 兴趣解读
  9. WatchKit App Submission Issues
  10. 给Jquery添加alert,prompt方法,类似系统的Alert,Prompt,可以响应键盘,支持拖动
  11. MAC SVN Phonegap
  12. 如何在eclipse中配置Selenium
  13. 李洪强iOS开发之图片拉伸技巧
  14. php四种基础排序算法的运行时间比较
  15. tabswitch
  16. HBase文件格式演变之路
  17. struts体系结构
  18. protobuf c++ API
  19. DevExpress控件的GridControl实现行多选
  20. 上海嘉韦思杯部分writeup

热门文章

  1. Java this关键字
  2. GridView
  3. pdoner version 0.1.0 release
  4. Python自动化 【第九篇】:Python基础-线程、进程及python GIL全局解释器锁
  5. 通过组策略实现IE自动以当前域账号登录某站点
  6. HDU 1892 See you~
  7. DB2存储过程语法规则
  8. Semantic UI 使用回调函数
  9. Android Studio Push rejected: Push to origin/Alpha1.0 was rejected
  10. 【Android】Sqlite3命令详解
  11. Currency Exchange
  12. java操作csv文件之javacsv.jar应用
  13. [Puzzle] 蚂蚁路线碰撞问题
  14. Ionic 2+ 安卓环境搭建
  15. django-团队简介的网页
  16. Git漏洞允许任意代码执行(CVE-2018-17456)复现
  17. hdu1598 find the most comfortable road (枚举)+【并查集】
  18. 深入理解 MySQL ——锁、事务与并发控制
  19. 深入浅出php socket编程
  20. nginx内置预定义变量