楼主把下面两句
out.println(question);
out.println("你好!");
改为:
System.out.println(question);
System.out.println("你好!");

解决方案 »

  1.   

    楼主的处理方法有问题,ms sqlserver 2000应该是所有数据库中处理乱码问题最方便的了,你的思路十分不明!
    my qq :77113981
    msn:[email protected]
      

  2.   

    我觉得你如果
    System.out.println(question);
    System.out.println("你好!");
    应该不会出现乱码。你在页面上是否有:
    <%@ page 
    language="java"
    contentType="text/html; charset=gb2312"
    pageEncoding="gb2312"
    %><META http-equiv="Content-Type" content="text/html; charset=gb2312">这样的代码去设置页面的编码呢?如果没有,你加上这个试试。应该就不会出问题了。
      

  3.   

    中文存入数据库
    String userID=request.getParameter("userID");
    改为
    try {
           userID = new String(request.getParameter("userID").getBytes("iso8859-1"));
    } catch (UnsupportedEncodingException uee) {
    uee.printStackTrace();
      }最好做个方法使用。如果有更好的方法,请告诉我
      

  4.   

    页面处理方式
    页面加入
    <%@ page contentType="text/html;charset=gb2312"%>
    不同页面传递中文参数时写个处理中文的方法
    public String ex_chinese(String str){
         if(str==null){
         str  ="" ;
         }
         else{
             try {
            str = new String(str.trim().getBytes("iso-8859-1"),"gb2312") ;
             }
             catch (Exception ex) {
             }
         }
         return str ;
      }
    该方法通常是在不同页面传递中文参数时使用,
    当然,转换不能转化多次(如果是多次,但一定要正确,转换回去,一定要转换回来)
    使用以上所说,所有问题都解决了
      

  5.   

    你存储数据时所用的编码格式是ISO8859-1,取数据的时候也应该进行转换
    String question = result.getString("question");
    改为:
    String question = new String(result.getBytes("question"),'gb2312');
    没在MS Server试过,不知道管不管用,其实调整数据库字符编码格式,应该可以一劳永逸
      

  6.   

    试过读取时转换String question = new String(result.getBytes("question"),'gb2312');
    结果还是“?????? 你好!”
    也试过System.out.println(question);
    System.out.println("你好!");
    结果什么都不显示了
    我觉得不是页面显示汉字问题了,以为那个中文“你好!”可以正确显示
    而且我使用了<%@ page 
    language="java"
    contentType="text/html; charset=gb2312"
    pageEncoding="gb2312"
    %>数据库中怎么调整数据库字符编码?望指教!
      

  7.   

    处理中文的方法
    public String ex_chinese(String str){
         if(str==null){
         str  ="" ;
         }
         else{
             try {
            str = new String(str.trim().getBytes("ISO8859-1"),"gb2312") ;
             }
             catch (Exception ex) {
             }
         }
         return str ;
      }在文件的开头部分设置一下页面的字符集就可以的。
    <@ page contentType="text/html;charset=gb2312">
    从数据库中读取数据之后,就可以直接使用和显示了。我就是使用这种方法的,试一下在说问题。
      

  8.   

    str = new String(str.trim().getBytes("ISO8859-1"),"gb2312") ;
    也试了
    还是??????
      

  9.   

    我现在也遇到
    Rainmanwu(愚人)老哥的问题,怎么都是乱码,上面的转化方式都加了,只是从数据库中取出的是乱码,郁闷,等待解决
      

  10.   

    我也刚解决类似问题,不过数据库是oracle的.
    首先搞清楚数据库存入的是什末编码,gbk、8859_1、or gb2312
    然后转成取出程序的所在环境认识的编码
    比如aa=new String(result.getString(1),getBytes("GBK"),"8859_1");
      

  11.   

    我觉得你如果
    System.out.println(question);
    System.out.println("你好!");
    应该不会出现乱码。你在页面上是否有:
    <%@ page 
    language="java"
    contentType="text/html; charset=gb2312"
    pageEncoding="gb2312"
    %><META http-equiv="Content-Type" content="text/html; charset=gb2312">这样的代码去设置页面的编码呢?如果没有,你加上这个试试。应该就不会出问题了。
    ------------------------------------------------------------------------------好好贴
      

  12.   

    SQLServer中编码格式应该为GBK,你用
    new String(str.trim().getBytes("GBK"),"gb2312")试试吧
    没问题的。