From表单提交数据和response响应数据中文乱码解决方案
1,POST请求
例如一下代码:
form表单通过submit按钮发起post请求提交输入框中的值 ”多测师“ 到后台Servlet中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<form method="post" action="DemoServlet">
<input type="text" name="textName" value="多测师"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
servlet中的代码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String textName = request.getParameter("textName");
System.out.println(textName);
}
post方式提交中文乱码解决方法在doPost方法中的首行添加如下代码:
request.setCharacterEncoding(“UTF-8”);
2,get请求
例如一下代码:
form表单通过submit按钮发起get请求提交输入框中的值 ”多测师“ 到后台Servlet中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<form method="get" action="DemoServlet">
<input type="text" name="textName" value="多测师"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
servlet中的代码
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String textName = request.getParameter("textName");
System.out.println(textName);
}
get方式提交中文乱码解决方法在Tomcat的conf目录下的server.xml中找到Connector
在Connector中添加URIEncoding=“UTF-8”
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
3,response响应数据到浏览器显示乱码解决方案
servlet中的代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 这里设置UTF-8是为了解决接收中文数据乱码
request.setCharacterEncoding("UTF-8");
String textName = request.getParameter("textName");
System.out.println(textName);
// 这里设置UTF-8是为了解决响应中文数据到浏览器乱码
response.setHeader("content-type", "text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
// 把中文数据响应到浏览器
PrintWriter writer = response.getWriter();
writer.println("多测师");
writer.close();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// get方法中接收中文数据乱码需要在tomcat的conf目录下的server.xml的Connector中配置URIEncoding="UTF-8"
String textName = request.getParameter("textName");
System.out.println(textName);
// 这里设置UTF-8是为了解决响应中文数据到浏览器乱码
response.setHeader("content-type", "text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
// 把中文数据响应到浏览器
PrintWriter writer = response.getWriter();
writer.println("多测师");
writer.close();
}
无论是doGet方法还是doPost方法都需要在方法中添加
response.setHeader(“content-type”, “text/html;charset=UTF-8”);
response.setCharacterEncoding(“UTF-8”);