概述
在Web项目启动访问Tomcat成功后,客户端浏览器中访问写好的HTML页面,出现了中文乱码问题.
解决过程
在网上搜了之后发现有以下几种常用方案:
1.找到Tomcat根目录下的conf目录,分别修改其中的web.xml和server.xml文件
2.修改server.xml文件,添加 URLEncoding="UTF-8” 到文件中(定位行数在70行左右)
3.找到Tomcat根目录下的bin目录,找到catalina.bat,添加下面代码到文件中(定位到216行左右)
-Dfile.encoding=UTF8 -Dsun.jnuencoding=UTF-8
在尝试了以上方案后,依然没有解决乱码问题。
最后在Web项目中的LoginServlet类的doGet方法中加入
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
解决打开后全是问号的乱码问题
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
Context context = new Context();
if(req.getSession().getAttribute("login-failure") != null){
context.setVariable("failure",true);
req.getSession().removeAttribute("login-failure");
}
if(req.getSession().getAttribute("user") != null){
resp.sendRedirect("index");
return;
}
ThymeleafUtil.process("login.html", new Context(), resp.getWriter());
}