解决办法:
第一:
在jsp页面加入:
<%@ page contentType="text/html; charset=gb2312" %>
或者在servlet里面
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html; charset=gb2312");
上面的如果在不行就用如下的方法在数据入库前进行调用:
public static String UnicodeToChinese(String s){
  try{
     if(s==null||s.equals("")) return "";
     String newstring=null;
     newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
     return newstring;
    }
  catch(UnsupportedEncodingException e)
  {
  return s;
  }
  }public static String ChineseToUnicode(String s){
  try{
  if(s==null||s.equals("")) return "";
  String newstring=null;
  newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
   return newstring;
  }
  catch(UnsupportedEncodingException e)
  {
  return s;
 }
  }

解决方案 »

  1.   

    存入的时候做一下字符码变换,加一句如:String st=new String(str.getBytes("8859_1"),"gb2312");
    再把st保存到数据库中肯定搞定。
      

  2.   

    javac编译时加个选项
    javac -encoding GBK
      

  3.   

    <%@ page import='java.util.Locale' %>
    <%@ page pageEncoding='GB2312' %><-----1
    <%
     response.setLocale(Locale.CHINA);<-----2
     request.setCharacterEncoding("GB2312");<-----3
    %>
    在JSP中加上这3句试试
      

  4.   

    你把第二位进行异或了,这可能造成编码溢出数据库系统的编码范围。
    只要把第一位异或就可以了,也可以达到同样效果。
    bb[j]^=01;我在Oracle数据库上调试成功
      

  5.   

    同意careless的建议。我觉得楼主的意思,前几位高手没能回答到点上,careless和我的想法一致。把低位异或比较安全,试试吧
      

  6.   

    我把我知道的出问题的字包含在下面一句话中:原文:    技术部,怎么一条也不行了
    加密后:  抖?傅&?删乇?馗副谮肆术,怎,条 变成?了,而按 bb^=10; 变成?的应是5,所以还原显示出来后,变成了 技5部,5么一5也不行了大家帮忙看看!!
      

  7.   

    GBK gb2312 好像都不行.careless(深潭静水) 的办发我还没是,等下试试,大家有什么别的建议,欢迎大家提出,我们一起讨论
      

  8.   

    你好,看看下面的
     http://www.csdn.net/expert/topic/1064/1064137.xml?temp=.6400873
     祝你好运!!
      

  9.   

    careless(深潭静水) 说的极是,定以高分相送,
    我的问题基本解决了,谢谢 在这里参与的所有朋友,各位接分!我得MSN地址:[email protected]
    希望各位加我,愿与大家共同进步