乱码成因:
服务器输出的字符串的编码和客户端显示字符串的编码不一致,从而导致乱码问题。
解决办法:
设置服务器和客户端的编码相同。
设置服务器的字符串编码:
//设置服务器输出的编码为UTF-8
response.setCharacterEncoding("UTF-8");
设置客户端的字符串显示编码:
//告诉浏览器输出的内容是html,并且以utf-8的编码来查看这个内容。
response.setContentType("text/html;charset=utf-8");
这两行语句要在获取输出流之前执行。才会生效。
举个例子:
下面博主只打出了doGet方法,因为这两句是在doGet或者doPost里的
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out=response.getWriter();
out.println("<h1>用户登录</h1>");
out.println("<form action='/MyWeb/JudgeInformationServlet' method='get'>");
out.println("用户名<input type='text' name='username'/></br>");
out.println("密 码<input type='password' name='password'/></br>");
out.println("<input type='submit' value='登录'/></br>");
out.println("</form>");
out.println(new java.util.Date().getTime());
}
第三四行就是上述的两句编码设置。
欢迎各位在评论区留言探讨