Web运行控制台输出乱码解决总结

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body>    <form action="/AServlet" method="post">        用户名:<input type="text" name="username" value="李四"/><br/>        <input type="submit" value="提交">    </form>    <hr/>    <a href="/AServlet?username=张三">GET</a></body></html>
 1 @WebServlet(name = "AServlet",urlPatterns = "/AServlet") 2 public class AServlet extends HttpServlet { 3     public void doPost(HttpServletRequest request, HttpServletResponse response) 4             throws ServletException, IOException { 5         request.setCharacterEncoding("utf-8"); 6         String username = request.getParameter("username"); 7         response.setContentType("text/html;charset=utf-8"); 8         PrintWriter out = response.getWriter(); 9         out.print(username);10         System.out.println(username);11     }12 13     protected void doGet(HttpServletRequest request, HttpServletResponse response)14             throws ServletException, IOException {15         String name = request.getParameter("username");16         response.setContentType("text/html;charset=utf-8");17         PrintWriter out = response.getWriter();18         out.print(name);19         System.out.println(name);20     }21 }

1、运行环境:操作系统系统:Mac OS X10.12.6,语言:英文开发工具:IntelliJ IDEA 2017.2.2,默认编码:UTF-8Tomcat:9.0.0.M262、问题:运行Web项目时,控制台输出乱码。3、解决方法:设置Servlet的VM options(虚拟机选项)为:-Dfile.encoding=UTF-8

使用:chrome Version 60.0.3112.113,结果:控制台输出正常。

使用:QQBrowser Version 4.2.4761.400 (64-bit),结果:控制台输出正常。

使用:SafariVersion 10.1.2 (12603.3.8),结果:控制台输出正常。

使用:Firefox 55.0.3 (64 位),结果:控制台输出正常。

更换操作系统为中文,结果一致,排除系统语言方面原因。

注意:如果使用doPost()方法获取表单,则需在获取参数前设置:request.setCharacterEncoding(“utf-8”);否则会控制台会出现乱码。

参考:http://blog.csdn.net/rznice/article/details/41006913

当你见过了世界上最美丽的风景,

Web运行控制台输出乱码解决总结

相关文章:

你感兴趣的文章:

标签云: