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");  //获取用户输入的最喜欢去的地方

%>

 

你可能感兴趣的:(中文乱码)