解决表单提交中文乱码问题

时间:2021-05-19 19:04:49

post请求中文乱码:

//保证正确读取post请求提交的中文数据
request.setCharacterEncoding("utf-8");
//保证正确输出中文
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//获取提交的name值,并打印
String name = request.getParameter("name");
out.println("<h1>Hello,"+name+"</h1>");
//获取提交的contact值
String[] contacts = request.getParameterValues("contact");
if(contacts!=null){
out.println("<h1>Contact Information:</h1>");
for(String info:contacts){
out.println("<h1>"+info+"</h1>");
}
}



get请求中文乱码:

//保证正确输出中文
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//获取提交的name值,并打印
String name = request.getParameter("name");
//保证正确读取get提交来的中文
name = new String(name.getBytes("iso-8859-1"),"utf-8");
out.println("<h1>Hello,"+name+"</h1>");
//获取提交的contact值
String[] contacts = request.getParameterValues("contact");
if(contacts!=null){
out.println("<h1>Contact Information:</h1>");
for(String info:contacts){
out.println("<h1>"+info+"</h1>");
}
}


测试可以用eclipse带的tcp/ip monitor 比较两种请求方式的不同