写入时需转换  ISO-8859-1 to GBK
读出时不转换

解决方案 »

  1.   

    JAVA的内置编码是UNICODE,所以要转换:
          try
          {
              String tempByteArray = strSrc.getBytes("ISO-8859-1");
              String strReturn = new String(tempByteArray,"GBK");
          }
          catch(Exception e)
          {
          }
      

  2.   

    加上这句话试试。
    <%@ page contentType="text/html;charset=gb2312"%>
      

  3.   

    我使用的办法(不是我发明的方法)比较麻烦,要把每个进入数据库的字符串和从数据库读出的字符串分别转换编码,也就是  中文数据 --> gb2bytes --> [ Database ] --> bytes2gb --> 读出数据
    // to gb2312 每次从数据库读出的数据应用这个方法后再使用
        public static String bytes2gb(String gb) {
            String s =null; 
            if(gb!=null) { 
                try{ 
                    s = new String(gb.getBytes("ISO8859_1"),"GB2312"); 
                }catch(Exception e) {
                    System.out.println(e.toString()); 
                    e.printStackTrace(); 
                } 
            } 
            return s; 
        } 
    // to bytes 读入数据库时应用的方法
        public static String gb2bytes(String bytes) {
            String s =null; 
            if(bytes!=null) { 
                try{ 
                    s = new String(bytes.getBytes("GB2312"),"ISO8859_1"); 
                }catch(Exception e){ 
                    System.out.println(e.toString()); 
                    e.printStackTrace(); 
                } 
            } 
            return s; 
        }     public static void main(String[] args){
            //Design for test purpose.
            DbConnection dc = new DbConnection();
            System.out.println(dc.openConnection());
        }
    另外每个页面都要添加
    <%@ page contentType="text/html;charset=gb2312"%>具体环境我用的mySql+redhat7.0/7.1/win2kp/win2ks+tomcat测试过
      

  4.   

    main()去掉,没用的,就用那两个方法,可以放到bean中去
      

  5.   

    你的操作系统是什么?
    如果是win2000、solaris7,8(字符集是gbk)
    向数据库写数据应该没什么太大问题如果要是linux问题可能会麻烦
    你必须转码