<%@ page language="java" contentType="text/html;charset=gbk" pageEncoding="gbk"%> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=gbk"> <title>輸入用戶名</title> </head> <body> <form id="form1" name="form1" method="post" action="session.jsp"> <div align="center"> <table width="23%" border="0"> <tr> <td width="36%"><div align="center">您的名字是:</div></td> <td width="64%"> <label> <div align="center"> <input type="text" name="name"/> </div> </label> </td> </tr> <tr> <td colspan="2"> <label> <div align="center"> <input type="submit" name="Submit" value="提交"/> </div> </label> </td> </tr> </table> </div> </form> </body> </html>
<%@ page language="java" contentType="text/html;charset=gbk" pageEncoding="gbk"%> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=gbk"> <title>輸入最想去的地方</title> </head> <body> <% String name=request.getParameter("name"); //獲取用戶填寫的用戶名 此處會致使中文亂碼 session.setAttribute("name",name); //將用戶名保存在session對象中 %> <div align="center"> <form id="form1" name="form1" method="post" action="result.jsp"> <table width="28%" border="0"> <tr> <td>您的名字是:</td> <td><%=name%></td> </tr> <tr> <td>您最喜歡去的地方是:</td> <td><label> <input type="text" name="address"/> </label> </td> </tr> <tr> <td colspan="2"><label> <div align="center"> <input type="submit" name="Submit" value="提交"/> </div> </label> </td> </tr> </table> </form> </body> </html>
<%@ page language="java" contentType="text/html;charset=gbk" pageEncoding="gbk"%> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=gbk"> <title>顯示結果</title> </head> <body> <% String name=session.getAttribute("name").toString(); //獲取保存在session範圍內的對象 String solution=request.getParameter("address"); //獲取用戶輸入的最喜歡去的地方 此處一樣會致使中文亂碼 %> <form id="form1" name="form1" method="post" action=""> <table width="28%" border="0"> <tr> <td colspan="2"><div align="center"><strong>顯示答案</strong></div></td> </tr> <tr> <td width="49%"><div align="left">您的名字是:</div></td> <td width="51%"><label> <div align="left"><%=name%></div> </label></td> </tr> <tr> <td><label> <div align="left">您最喜歡去的地方是:</div> </label></td> <td><div align="left"><%=solution%></div></td> </tr> </table> </form> </body> </html>
在顯示參數值時中文內容變成了亂碼,這是由於請求參數的文字編碼方式與頁面中的不一致所形成的,全部的request請求都是ISO-8859-1的,而在頁面中採用的是gbk編碼方式。要解決此問題,只要將獲取到的數據經過String的構造方法使用指定的編碼類型從新構造一個String對象,便可正確地顯示出中文信息。html
<% String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"gbk"); //獲取用戶填寫的用戶名 session.setAttribute("name",name); //將用戶名保存在session對象中 %>
<% String name=session.getAttribute("name").toString(); //獲取保存在session範圍內的對象 String solution=new String(request.getParameter("address").getBytes("ISO-8859-1"),"gbk"); //獲取用戶輸入的最喜歡去的地方 %>