get方式提交的参数编码,只支持iso8859-1编码。
输入参数是中文,输出结果有乱码。
hello?userName=北京
北京, 你好!
如果里面有中文,在后台就需要转换编码,如下
String name = request.getParameter("userName");name = new String(name.getBytes("iso8859-1"),"utf-8");
再次输出结果OK。
北京, 你好!
public class HelloServlet extends HttpServlet {
protected void service(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
//模拟网络延迟
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//接收请求参数
<span style="color:#ff0000;">request.setCharacterEncoding("utf-8");
String name = request.getParameter("userName");
name = new String(name.getBytes("iso8859-1"),"utf-8");</span>
System.out.println(name);
//作出响应
<span style="color:#ff0000;">response.setContentType("text/html;charset=utf-8");</span>
PrintWriter out = response.getWriter();
out.println(name + ", 你好! ");
out.close();
}
}