解决Servlet请求和响应的中文乱码
请求参数的中文乱码问题
post方式
setCharacterEncoding()
该方法只对post请求方式有效,get请求方式无效
HttpServletRequest接口提供了一个setCharacterEncoding()方法,该方法用于设置request对象的解码方式。
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置request对象的解码方式
request.setCharacterEncoding("UTF_8");
}
响应参数的中文乱码问题
第一种
设置HttpServletResponse使用UTF-8编码
response.setCharacterEncoding("UTF-8");
通知游览器使用指定编码
Response.setHeader("Content-Type","text/html;charset=UTF-8");
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置编码
response.setCharacterEncoding("UTF-8");
//通知解码
response.setHeader("Content-Type", "text/html;charset=UTF-8");
}
第二种
即设置HttpServletResponse使用UTF-8编码,也通知游览器使用指定编码
response.setContentType("text/html;charset=UTF-8");
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//响应
response.setContentType("text/html;charset=UTF-8");
}
小结(post方式)
解决请求响应中文乱码问题
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//请求
request.setCharacterEncoding("UTF-8");
//响应
response.setContentType("text/html;charset=UTF-8");
}