一个汽车销售网站首页(index.jsp)有一个新车推荐,推荐的汽车图片下面有“在线订购”该车的功能,点击【在线订购】,弹出的订单(OrderForm.jsp)上该车的名称是乱码,试过好几种方法,都不管用,急!哪位好心人帮我看一下啊
index.jsp部分代码
<%@ page contentType="text/html; charset=gb2312" import="java.sql.*"%>
<%@ page import="java.io.*" %>
<% request.setCharacterEncoding("GBK");%>
<html>
<head>
<title>华奥汽车销售集团网站</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
......
......
<div align="center"> <a href="#" onClick="javascript:window.open('OrderForm.jsp?action=<%=rs.getString("品牌")%> <%=rs.getString("型号")%>','','width=500,height=560,toolbar=no,location=no,status=no,menubar=no')" style=" color:#000000 ">在线订购</a></div>
OrderForm.jsp部分代码
<%@ page contentType="text/html; charset=gb2312" import="java.sql.*"%>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<% request.setCharacterEncoding("GB2312");%>
<html>
<head>
<title>华奥汽车销售集团网站在线订单</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
......
......
<form name="orderform" method="post" action="OrderForm.jsp?orderform=add">
  <td height="30"><div align="right">订购车型:</div></td>
            <td height="30" colspan="3"><input type="hidden" name="names" value="<%=request.getParameter("action")%>"><%=request.getParameter("action")%></td>

解决方案 »

  1.   

    首先页面上有时“GBK”有时又“GB2312”不好,不过应该不是原因所在,一步步排查吧。
    你先看看数据库里面保存的数据有没有乱码
    如果有,看看提交form的时候传递时有没有乱码,可以在jsp传递时print出来看看
    如果没有,看看get数据库数据出来时有没有乱码
      

  2.   

    <% response.setCharacterEncoding("GBK");%>
      

  3.   

    我一般都会统一用一种编码格式,然后用page指令和meta中都指定编码,可以另加一response.setCharacterEncoding("");一般没有出现乱码
      

  4.   

    问题已解决把<td height="30" colspan="3"> <input type="hidden" name="names" value=" <%=request.getParameter("action")%>"> <%=request.getParameter("action")%> </td> 替换为 <%String action = request.getParameter("action") == null ? "" : new String(((String)request.getParameter("action")).getBytes("ISO8859-1"));%>成功解决
    谢谢大家