先来两个简单的页面
  第一个是lmess.jsp   这个页面主要是给用户留言的  有文本域
  ----------------------------------------------------------------
  <%@ page language="java" pageEncoding="gbk" contentType="text/html;charset=gbk"%>
<%@page import="DB.DBFile"%>
<%@ page import="java.sql.*" %><jsp:include page="head.jsp"/>
<div id="head5">
<div style="float:left; margin-left:5px; "><img src="img/jian.gif"></div>
 <div style="margin-top:4px; "><font class="h5f"><b> 当前位置:</b><a href="index.jsp">
<font class="h5f">首页</font></a>→客户留言</font></div>
</div>
</div>
<div id="list">
     <div id="r12zz">
    <div id="r1211">
<div id="rl21a"><font color="#605955">客户留言</font></div>
                    <div style="float:right; margin-right:20px;margin-top:5px;"></div>

       </div>
           
                
</div>

                     
    <div class="reg">
       <div style=" text-align:left; background-color:#ECF5FB">
         <table width="761" border="1" cellspacing="1" cellpadding="1"><tr></tr>
       </table>
         
         <table width="761" border="1" cellspacing="1" cellpadding="1">
         <%
      DBFile db = new DBFile();
      Connection conn = db.getConnection();
      String sql;
      sql = "select *  from _lmess order by id desc";
      ResultSet rs =db.getStatement(conn).executeQuery(sql);
      boolean flag = true;
      while(rs.next()) { flag =false;
      %>
           <tr>
             <%System.out.println(new String(rs.getString("content").getBytes("gb2312"),"gbk"));
             System.out.println(rs.getString("content"));
             System.out.println(new String(rs.getString("content").getBytes("iso8859-1"),"gbk"));
             System.out.println(new String(rs.getString("content").getBytes("iso8859-1"),"gb2312"));
              System.out.println(new String(rs.getString("content").getBytes("utf-8"),"gbk"));
              %><td width="600" height="67"><font size=2><%=new String(rs.getString("content").getBytes("gb2312"),"gbk") %></font></td>
             <td width="148">留言日期:<font color=red><%=rs.getString("riqi") %></font></td>
           </tr>
         <%} if(flag) {
         %>
           <tr>
             <td align = center><font color=red>暂无留言~~~</font></td>
             
           </tr>
         <%} %>
         </table>
         <form action="crenew.jsp" method="post" name="reg">
         <table width="300" border="1" cellpadding="1" cellspacing="1" bgcolor="#FFFFCC" ><tr><td width="123" class="STYLE3"><table width="300" border="1" cellpadding="1" cellspacing="1" bgcolor="#FFFFCC" >
           <tr>
             <td colspan="4" class="STYLE3">多多留言:(不超过100字)</td>
           </tr>
           
           
           <tr>
             <td colspan="4"><textarea name="content" id="content" cols="45" rows="5"></textarea></td>
           </tr>
           <tr>
             <td colspan="4"><div align="center">
                 <input type="submit" value="添加留言" />
               |
               <input type="reset"  value="重置" />
             </div></td>
           </tr>
         </table></td>
             </tr>
       </table>
         
       </form>
       <%
       if(rs!=null) {
       rs.close();
       rs=null;}
       db.closeAll();
       %>
      </div>
    </div>
</div>
<jsp:include page="bottom.jsp"/>    这是crenew.jsp   主要是收集留言插入到数据库
-----------------------------------------------------------------------------------
<%@ page language="java" pageEncoding="gbk" contentType="text/html; charset=gbk"%>
<%@page import="DB.DBFile"%>
<%@ page import="java.sql.*" %>
     <%//request.setCharacterEncoding("utf-8");
      String content = new String(request.getParameter("content").getBytes("gbk"),"gb2312");
      DBFile db = new DBFile();
      Connection conn = db.getConnection();
      String sql;
      sql = "insert into _lmess (content  ,riqi) values ('"+content+"',now())";
      db.getStatement(conn).executeUpdate(sql);
      db.closeAll();
      %>
       <script language = "javascript">
         alert("留言成功!继续操作");
 window.top.location.href="lmess.jsp"; 
    </script>--------------------------------------------------------------------------
 我的数据库字符集是gb2312
    以前里面存的都是简体字
现在想存繁体字   主要是要显示出来不乱码就行啦 
  但是我试了再试  还是乱码
 希望大侠们能帮我 正确显示简体和繁体   
   一旦有满意答案  就 结贴

解决方案 »

  1.   

    所有pageEncoding也设为gb2312试试
      

  2.   

    GB2312??数据库改成UTF-8,所有的地方改成UTF8试试的吧。UTF-8比gb2312字符集大。用过滤器比较好。
      

  3.   

    //request.setCharacterEncoding("utf-8");
          String content = new String(request.getParameter("content").getBytes("gbk"),"gb2312"); 改成      request.setCharacterEncoding("GBK"); // 这里当然是GBK啊,怎么是UTF-8?
          String content = request.getParameter("content"); // 这样就行了
      

  4.   

    同意楼上的说法,要不是的话,想问问LZ是不是用mysql的,会不会是一开始配置mysql时就没有选好gbk2312的,最好确定下你数据库里现在能不能存中文的
      

  5.   

    也可以写个过滤器,统一都设置成GBK,gb2312只兼容简体,GBK是兼容简体和繁体两种字体
      

  6.   

    在数据库连接字符串后面+上?useUnicode=true&amp;characterEncoding=utf8试试
      

  7.   

    utf-8和gbk、gb2312的我都试过啦
      

  8.   

     
    String content = request.getParameter("content").getBytes("iso-8859-1"),"gb2312"); //这样试试一般都使用charset=gb2312
    有时可能因为开发环境的不同或异常和导致
      

  9.   

    你看看繁体插到到数据库中是不是乱码,如果是乱码的话,你取出来那肯定是乱码。把你数据库、jsp等所有的东东都改成utf-8,还有你的工作空间和服务器的编码都改成utf-8!再试试
      

  10.   

    最好的方法用个过滤器,然后在web.xml里面配置下 应该能解决
      

  11.   

    太 恐怖了 居然还有人把 sql语句写在 jsp里面
      

  12.   

    楼主的页面是不是用dreamweaver编辑的啊 我也在写留言板的程序,开始在dreamweaver中设计好了,把代码复制到Myeclipse中页面就出现了乱码。后来就直接在Myeclipse中改.....办法是笨了点 不过 乱码是解决了。
      

  13.   

    gb2312里不包括繁体字,全改成GBK的。
      

  14.   

    请参考我们教程中对乱码的研究:
    http://family168.com/tutorial/jsp/html/jsp-ch-02.html#jsp-ch-02-02
      

  15.   

    23楼 xyz20003 分析的很清楚,很仔细,学习了,谢谢!
      

  16.   

    1.保存所用的编码都是GB2312,jsp页面要GB2312,数据库编码也要GB2312(可以通过工具查看数据库的编码)
    2.如果是jsp/servlet或struts1 要写一个字节碼转换的过滤器,struts2就免了(内部的拦截器给实现了)