首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

jsp中<%.pageEncoding="UTF-8"%>会使页面中的表单提交数据以UTF-8编码吗?该如何处理

2012-01-30 
jsp中%...pageEncodingUTF-8%会使页面中的表单提交数据以UTF-8编码吗?我在做一个下载文件的功能,是用

jsp中<%...pageEncoding="UTF-8"%>会使页面中的表单提交数据以UTF-8编码吗?
我在做一个下载文件的功能,是用字节流类去做,点击文件名会把文件名传到文本框里面然后传入后台进行处理。英文名文件没问题,中文名文件就不行了,每次servlet返回的文件名都是乱码。


以下是servlet中关于编码的两句代码,我想应该是在这里做文章吧。帮忙看看!谢谢!

//downloadFileName是从表单里得到的文件名
String aFileName = new String(request.getParameter("downloadFileName").getBytes("ISO-8859-1"), "utf-8");





response.setHeader("Content-disposition", "attachment; filename="+ new String(aFileName.getBytes("utf-8"), "utf-8"));

[解决办法]
pageEncoding:看意思都知道是页面的编码格式
上传文件,request.getParameter("downloadFileName")能获到到...?
既然以你的方式产生乱码,那么你在方法的第一句写上request.setCharacterEncoding("utf-8");

当然最好写个filter,这个filter用来转码,代码非常简单:

Java code
HttpServletRequest req = (HttpServletRequest) request;        HttpServletResponse resp = (HttpServletResponse) response;        req.setCharacterEncoding("utf-8");        resp.setCharacterEncoding("utf-8");        chain.doFilter(request, response); 

热点排行