jsp页面乱码问题的解决
2009-02-27 13:21
260 查看
jsp乱码问题,大家经常碰到,我在做多文件上传的过程中,基本碰到了所有的情况,解决也是曲折的,经过摸索,现在总结如下:
1、所有页面都用统一的编码UTF-8(或GB2312或GBK)。
2、写过滤器,设置request.setCharacterEncoding("UTF-8")。
3、javascript脚本里用传参数要先encodeURI(str)编码。
4、适当的时候,在jsp里用java.net.URLDecoder.decode(request.getParameter("str"),"UTF-8")解码。
5、最容易忽略的是在jsp页面使用".....":value=" <%=paraFiles%>",一定要有引号。
6、文件下载的时候,response.setHeader的文件名要转换编码,读取文件的路径不要转换编码。
例子源码:http://download.csdn.net/source/965319
1、所有页面都用统一的编码UTF-8(或GB2312或GBK)。
2、写过滤器,设置request.setCharacterEncoding("UTF-8")。
3、javascript脚本里用传参数要先encodeURI(str)编码。
4、适当的时候,在jsp里用java.net.URLDecoder.decode(request.getParameter("str"),"UTF-8")解码。
5、最容易忽略的是在jsp页面使用".....":value=" <%=paraFiles%>",一定要有引号。
6、文件下载的时候,response.setHeader的文件名要转换编码,读取文件的路径不要转换编码。
public static String toUtf8String(String s) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c >= 0 && c <= 255) { sb.append(c); } else { byte[] b; try { b = Character.toString(c).getBytes("utf-8"); } catch (Exception ex) { System.out.println(ex); b = new byte[0]; } for (int j = 0; j < b.length; j++) { int k = b[j]; if (k < 0) { k += 256; } sb.append("%" + Integer.toHexString(k). toUpperCase()); } } } return sb.toString(); } String fileName=request.getParameter("filename"); String contextPath=request.getSession().getServletContext().getRealPath(""); String filePath=contextPath+"//"+InitParameter.getUploadFile_Path()+"//"; File file=new File(filePath+fileName); String fileName1=toUtf8String(fileName); response.setContentType("application/octet-stream"); response.setContentType("application/OCTET-STREAM;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment;filename="+fileName1);
例子源码:http://download.csdn.net/source/965319
相关文章推荐
- 如何解决JSP页面显示乱码问题
- 如何解决JSP页面显示乱码问题
- JSP页面中超链接传递中文参数出现乱码问题解决方法
- eclipse解决jsp页面乱码问题
- jsp页面传值的乱码问题的解决
- 解决jsp页面使用网络路径访问图片的乱码问题
- 解决JSP页面中文乱码问题
- jsp页面乱码问题的解决
- 解决jsp页面请求action后中文乱码的问题
- 关于jsp页面 title中文乱码问题的解决方法
- 关于jsp页面中中文乱码问题的解决方法
- 解决Servlet输出到JSP页面的JavaScript脚本的中文乱码问题
- 日常问题记录--JSP页面中通过<s:property value="#parameters.userName[0]>获取URL参数中文时为乱码的解决办法
- jsp页面参数传值,出现乱码的解决问题。
- 解决jsp页面乱码问题
- 如何解决JSP页面显示乱码问题
- Jsp页面中的中文乱码问题解决
- mysql与jsp页面之间读取数据乱码问题解决
- 解决前台jsp页面提交中文数据以后,数据库中乱码问题??
- 解决jsp页面传值乱码问题