標籤:控制 end att sdn rac print cti prot oid
<!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),結果:控制台輸出正常。
使用:Safari Version 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運行控制台輸出亂碼解決總結