【【servlet】彻底解决】彻底解决doGet、、doPost以及控制台中文乱码问题以及控制台中文乱码问题
我们在javaWeb项目时,使用doget和dopost总是会出现各种原因的中文乱码问题,楼主在查阅大量资料后,将为什么有这样的问题,和如何解决这种问题做个总结。
思维导图:
1. 应答乱码处理应答乱码处理(response输出页面时乱码输出页面时乱码)
1.1 问题:问题:
输出到页面时中文会乱码
后端代码:
PrintWriter out = response.getWriter();
out.println("你好,世界!");
前端显示:
1.2 原因原因
没有设置HttpServletResponse使用哪种编码,默认编码跟浏览器解码不匹配。
1.3 解决方案:解决方案:
方案方案1::
在PrintWriter out = response.getWriter();
之前添加这两句:
response.setHeader("Content-type", "text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
//设置HttpServletResponse使用UTF-8编码
response.setCharacterEncoding("UTF-8");
//通知浏览器使用UTF-8解码
response.setHeader("Content-type", "text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
方案方案2::
或者在之前添加这一句:
response.setContentType("text/html;charset=utf-8");
//包含方案1的两种功能
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
以上两种方案添加其中之一后前端显示:以上两种方案添加其中之一后前端显示: