老问题,
(1)页面:
<%@ page contentType="text/html;charset=UTF-8"%>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
(2)代码:
项目编码格式为utf-8
当前类编码为utf-8
最近整了个servlet
传值是这样的:
res.sendRedirect ( "/susystem/document/miSUDocumentDraftInfoManagerAdd.jsp?fileurl=" + URLEncoder.encode(fileName,"utf-8")+"&sortFileName="+URLEncoder.encode(sortFileName,"utf-8")) ;
接收值是这样的:
String fileurl = request.getParameter("fileurl");
if(fileurl!=null){
fileurl = new String(fileurl.getBytes("iso-8859-1"), "utf-8");
}else{
fileurl = "";
}
才不乱码,当然也可以用decode来解码,但是要记得是decode两次,原因是request。getParameter 这个方法之前会自动解码一次,而且是默认的iso-8859-1

本文介绍了一种解决Servlet中中文参数乱码的方法。通过使用URLEncoder.encode进行编码,并在接收端采用new String(fileurl.getBytes("iso-8859-1"),"utf-8")的方式进行解码,可以有效避免中文乱码的问题。需要注意的是,由于request.getParameter方法会自动进行一次默认的iso-8859-1解码,因此需要额外注意解码次数。
1734

被折叠的 条评论
为什么被折叠?



