设置响应编码有两种方式
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();
}
}
}