啓動Servlet時因爲前後端牽涉的東西比較多,請求交互雙方外加servlet容器,在輸入中文的時候出現亂碼我們應該怎麼處理?
亂碼處理關注點總結:【牧牛遛馬】
以下以utf-8編碼設置實現:
1、交互雙方的編碼需要保持一致:
在servlet的service方法中設置,當然如果使用繼承至HttpServlet時,在doPost,doGet方法中進行設置:
response.setCharacterEncoding("utf8");
request.setCharacterEncoding("utf8");
reponse.setHeader("Content-Type","text/html;charset=utf8");
2、客戶頁面的編碼設置與後臺編碼一致:
<meta http-equiv="Content-Type" content="text/html;charset=utf8">
3、把Tomcat的編碼也設置爲一致編碼
修改Tomcat中Conf目錄下的server.xml文件
<connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8" />
4、檢查修改Servlet程序的編碼格式
在Eclipse下面找到 Windows—preference—-general—workspace下面修改。
5、轉碼
修改客戶端傳過來的編碼格式:
String str = new String(request.getParameter("name").getBytes("ISO-8859-I"),"utf-8");