setContentType与setCharacterEncoding的区别

时间:2023-03-08 21:16:46
setContentType与setCharacterEncoding的区别

setCharacterEncoding只是设置字符的编码方式 
setContentType除了可以设置字符的编码方式还能设置文档内容的类型

1.setCharacterEncoding

response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html> \n"+"这里采用的是setCharacterEncoding");//这里设置了文档类型是html

输出: 
setContentType与setCharacterEncoding的区别 
如果去掉"<!DOCTYPE html> \n"这一句的话

response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println("这里采用的是setCharacterEncoding");//这里没有设置文档内容的类型

输出字体会变的没有任何格式

setContentType与setCharacterEncoding的区别

浏览器的任何字体设置都没有用(前面带了"<!DOCTYPE html> \n"字体不一样是因为我设置了浏览器的个性化字体)

2.setContentType

response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("这里采用的是setContentType");

setContentType与setCharacterEncoding的区别

完全和带了"<!DOCTYPE html> \n"的setCharacterEncoding一样。

3.另外

setCharacterEncoding和setContentType只能在response.getWriter();之前才有用,如果是在这之后是没有任何作用的。