解决response获取的PrintWriter输出的中文乱码
出现乱码代码
@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取字符输出流PrintWriter pw = response.getWriter();pw.write("你好 response");}

问题分析
出现问题这样的问题的原因是浏览器默认的为我们系统使用的字符集,一般默认为GBK,而PrintWriter对象是我们从response获取而来的,而服务器默认的字符集为utf-8,所以就会出现乱码情况,如果是自己创建的PrintWriter对象的话,就不会出现这种情况.所以只需要让浏览器知道服务器使用的是什么编码,并且对浏览器的请求头content-type进行修改就可以解决编码不一致的问题了
修改后的代码
@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//在获取流对象之前告诉浏览器使用什么字符集response.setCharacterEncoding("utf-8");//告诉浏览器,服务器发送的消息体的数据的编码response.setHeader("content-type","text/html;charset=utf-8");//1.获取字符输出流PrintWriter pw = response.getWriter();pw.write("你好 response");}

补充:
除了以上的方法,还有更简单的方法,就是直接设置 response.setContentType(“text/html;charset=utf-8”);
其效果也是一样的
//简单的设置编码的方法response.setContentType("text/html;charset=utf-8");
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
