不用自己编方法的,URLencode 不要对整个URL 编码,只要对参数编码就行了
下面的test是一个index页面提交参数到servlet,servlet把参数编码后再返回该页面显示
你也可以不用servlet,做成2个JSP页面就行了
/Test/index.jsp:<%@ page contentType="text/html; charset=gb2312" %>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<%

if(request.getParameter("name")!=null) {
String s = new String(request.getParameter("name").getBytes("iso-8859-1"));
out.println(s);
}%>
<form name="form1" method="post" action="/Test/test">
<input name="name" type="text">
<input name="submit" type="submit" value="提交">
</form>
</body>
</html>Servlet:
package servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.Convert;
/**
 * @author WuBin
 *
 * 
 * 
 */
public class Test extends HttpServlet { protected void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {


String s = new String(request.getParameter("name").getBytes("iso-8859-1"));
System.out.print(s);
response.sendRedirect("/Test/index.jsp?name=" + java.net.URLEncoder.encode(s , "gb2312"));
}
protected void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}