• 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");  //获取用户输入的最喜欢去的地方
    %>
  • 相关阅读:
    从苏宁电器到卡巴斯基第13篇:我在苏宁电器当营业员 V
    从苏宁电器到卡巴斯基第12篇:我在苏宁电器当营业员 IV
    从苏宁电器到卡巴斯基第11篇:我在苏宁电器当营业员 III
    从苏宁电器到卡巴斯基第10篇:我在苏宁电器当营业员 II
    从苏宁电器到卡巴斯基第09篇:我在苏宁电器当营业员 I
    从苏宁电器到卡巴斯基第08篇:来到苏宁之前的过渡
    【目录】从苏宁电器到卡巴斯基
    从苏宁电器到卡巴斯基第07篇:我在佳木斯的日子(下)
    从苏宁电器到卡巴斯基第06篇:我在佳木斯的日子(中)
    从苏宁电器到卡巴斯基第05篇:我在佳木斯的日子(上)
  • 原文地址:https://www.cnblogs.com/gaopeng527/p/4418353.html
Copyright © 2020-2023  润新知