response响应数据乱码原因以及解决方案
- 图解
- 因为浏览器默认解码是根据操作系统当前的解码字符集一样(
我的是GBK2312
),而tomcat
编码集默认是ISOxxxx
的。所以需要预先设置
解决方案一(推荐)
response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter();
writer.write("<h1>你好 javaWeb</h1>");
- 告诉浏览器,它需要按照什么解码集。(使用setContentType也会将tomcat的编码集设置为同样的,
但是一定要在设置之前,我这里必须在PrintWriter之前
)
方案二(方案一的完整写法)
// response.setCharacterEncoding("utf-8");这一句是将tomcat响应数据以utf-8编码, 下面这个代码也会实现这个功能
response.setHeader("Content-type", "text/html;charset=utf-8");
PrintWriter writer = response.getWriter();
writer.write("<h1>你好 javaWeb</h1>");