HTTP传输默认的编码是ISO-8859-1,因此在浏览器发出请求时给出的url是编码后的字符串,这样当有中文时,服务器得到的是一个包含乱码的url字符串,在目标页面中很难正确解析出参数值,为了解决这个问题,给出以下解决方案。
发出请求的JSP页面:在这里对中文进行utf-8 编码,然后拼到url中。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String name=java.net.URLEncoder.encode("黄云增","utf-8");
response.sendRedirect("page/information.jsp?user="+name+"&pass=1");
%>接受请求的页面这样来使用url中包含的参数:重新编码为utf-8.
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
String user=request.getParameter("user");
user=new String(user.getBytes("iso-8859-1"),"utf-8");
%>
之后使用user就是正常的中文编码!