<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>request 内置对象的实例</title>
</head>
<body><%--
<%! String myname=""; %>
<%
myname=new String(request.getParameter("myname").getBytes("ISO-8859-1"),"GBK");
%>
--%>
<%--
request.setCharacterEncoding("GBK");
--%><form action="request.jsp">
<p>Get request results:</p>
<input type="text" name="myname" /><br />
<input type="submit" name="get name" /><br />
</form>
返回这个request的值,提交过来的值:<%=request.getParameter("myname") %><br/></body>
</html>
本人初学JSP,不同页面间的参数传递,用注释内的代码进行编码转换,能正常显示中文,然而在同一页面,用第一个注释内的代码,会报错,用第二个注释内的代码,无任何效果(仍显示“??”)。求各位前辈赐教啊!急~

解决方案 »

  1.   

    ????的乱码可以用myname=new String(request.getParameter("myname").getBytes("gbk"),"iso-8859-1");
      

  2.   

    这个简单,建议编码全部采用utf-8支持国际化 所有页面charset编码必须统一 meta标签就不要了 request.setCharacterEncoding("utf-8");必须放在代码的第一行
      

  3.   

    建议编码全部采用utf-8支持国际化,因为以后做项目基本上都是用的这个编码
      

  4.   

    你把页面的改成gb2312,还有一个更好的办法,就是写一个Filter,然后再Web.xml里面配置一下,如果是做项目的话就很好用咯!
      

  5.   

    感谢各位前辈的帮助。目前的问题是,正如我在1楼说过的,如果在页面中加入编码转换的代码,例如:
    myname=new String(request.getParameter("myname").getBytes("ISO-8859-1"),"GBK");或者是有的前辈所建议的myname=new String(request.getParameter("myname").getBytes("GBK"),"ISO-8859-1");就会报错:org.apache.jasper.JasperException: An exception occurred processing JSP page /request.jsp at line XX(XX=上述编码转换代码所在的行)着急啊~ 继续麻烦各位前辈了
      

  6.   

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      

  7.   

    建议你去写一个过滤,然后再web.xml中把utf-8这个编码形式配置进去
      

  8.   

    这个简单,建议编码全部采用utf-8支持国际化 所有页面charset编码必须统一 meta标签就不要了 request.setCharacterEncoding("utf-8");必须放在代码的第一行