您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關幾種常見的java亂碼情況的解決方法,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲。
1、在Servlet中獲得通過get方式傳遞到服務器的數據時出現亂碼;
public class RegistServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String name = req.getParameter("userName"); byte[] bytes = name.getBytes("ISO8859-1"); String newName = new String(bytes,"UTF-8"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
解析:在doGet方法中定義一個name變量獲得封裝在服務器的客戶端數據userName,然后將name以“ISO8859-1”的方式賦值給字節數組bytes,最后將此bytes數組以UTF-8的方式賦值給一個新創建的String變量newName,此時newName就是能正常顯示的數據,之所以這么麻煩,是因為沒有直接的辦法一行代碼解決,可以就當此方法為固定用法。
2、在Servlet中獲得通過post方式傳遞到服務器的數據時出現亂碼;
public class RegistServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //注意:post方式提交數據的亂碼解決方式,放在getParameXXX方法之前 req.setCharacterEncoding("UTF-8"); //得到前臺input框中name="username"和password="password"的value值 String username = req.getParameter("username"); String password = req.getParameter("password"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
解析:post傳遞方式下解決亂碼問題很簡單,就req.setCharacterEncoding(“UTF-8”); 這一行代碼,但需注意,要將這句話放在獲取數據之前。
3、Servlet通過服務器將數據響應到客戶端時出現亂碼;
public class RegistServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //方式一: resp.setContentType("text/html;charset=utf-8"); //方式二: resp.setHeader("Content-type", "text/html"); resp.setCharacterEncoding("UTF-8"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
解析:注意,以上兩種方法在應用時要寫在輸出方法之前,另外,兩種方式效果一樣,因為方式一較簡潔,常用方式一。
4、HTML或JSP頁面在客戶端展示時出現的亂碼情況。
<head> <meta charset="UTF-8"> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>form表單</title> </head>
以上就是幾種常見的java亂碼情況的解決方法了,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注億速云行業資訊!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。