JSP中解決中文亂碼


<%@ 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對象,即可正確地顯示出中文信息。

<%
    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");  //獲取用戶輸入的最喜歡去的地方
%>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM