setContentType和setCharacterEncoding的区别
request.setCharacterEncoding()是设置从request中取得的值或从数据库中取出的值
response.setContentType(“text/html;charset=gb2312”)是设置页面中为中文编码
1.setCharacterEncoding是设置动态文字(参数,数据库)
response.setCharacterEncoding设置HTTP 响应的编码
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html> \n"+"这里采用的是setCharacterEncoding");//这里设置了文档类型是html
输出:
如果去掉" \n"这一句的话
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println("这里采用的是setCharacterEncoding");//这里没有设置文档内容的类型
输出:
浏览器的任何字体设置都没有用(前面带了" \n"字体不一样是因为我设置了浏览器的个性化字体)
2.setContentType设置页面静态文字
response.setContentType指定 HTTP 响应的编码,同时指定了浏览器显示的编码.
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("这里采用的是setContentType");
完全和带了" \n"的setCharacterEncoding一样。
3.另外
如果之前使用response.setContentType设置了编码格式,则使用response.setCharacterEncoding指定的编码格式覆盖之前的设置.与response.setContentType相同的是,调用此方法,必须在getWriter执行之前或者response被提交之前。
作者:feipeng8848
来源:CSDN
原文:https://blog.csdn.net/feipeng8848/article/details/56283298
版权声明:本文为博主原创文章,转载请附上博文链接!