Servlet设置响应编码setContentType 和 setCharacterEncoding

设置响应编码有两种方式
 

1. response.setContentType("text/html; charset=UTF-8");

第一种不仅发送到浏览器的内容会使用UTF-8编码,而且还通知浏览器使用UTF-8编码方式进行显示。所以总能正常显示中文

即:服务端用utf编码,并且告诉浏览器用utf-8的编码显示
 

2. response.setCharacterEncoding("UTF-8");

第二种仅仅是发送的浏览器的内容是UTF-8编码的,至于浏览器是用哪种编码方式显示不管。 所以当浏览器的显示编码方式不是UTF-8的时候,就会看到乱码,需要手动再进行一次设置。

*** 这两种方式都需要在response.getWriter调用之前执行才能生效。

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) {
		try {
			response.setContentType("text/html; charset=UTF-8");
//			response.setCharacterEncoding("UTF-8");

			PrintWriter pw = response.getWriter();
			pw.println("<h1>第一次 使用 Servlet</h1>");

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
发布了45 篇原创文章 · 获赞 9 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/m0_37668842/article/details/102778647