博主才疏学浅,今天闲来无事练练UTF-8格式内容的输出.
代码实现:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Service extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//服务器中默认编码为ISO-8859-1,不支持中文(tomcat规定)
/*告诉服务器应用使用UTF-8解析文本*/
response.setCharacterEncoding("UTF-8");
/*客户端编码设置*/
PrintWriter out = response.getWriter(); //得到一个字符输出流
// 法一
out.write("<html><head> <meta charset='UTF-8'></head><body>测试一</body></html>"); //向客户端相应文本内容
// 法二
response.setHeader("content-type", "text/html;charset=UTF-8");
out.write("测试二"); //向客户端相应文本内容
/* ------------------------------------------------------------- */
/*告诉服务器应用使用UTF-8解析文本,告诉客户端要使用什么编码*/
response.setContentType("text/html; charset=UTF-8"); //等同于以上response.setCharacterEncoding("UTF-8")+...charset=UTF-8
/*测试内容输出*/
// 法一
PrintWriter out = response.getWriter(); //得到一个字符输出流
out.write("测试三");
// 法二
ServletOutputStream sos = response.getOutputStream();
sos.write("测试四".getBytes()); //字符串后加getBytes()将String编码为byte序列这种方式也不会乱码.
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
以上有关UTF-8格式内容的输出一共有四种方式,接下来我将给大家一一罗列:
方法一:
方法二:
方法三:
方法四:
相关git代码链接:https://github.com/striner/javaCode/blob/master/practiceAboutTheWebResponseHeader