这是因为java对中文的处理有问题,论坛里多次提过解决办法。可以去查一下
问题应该出在接受参数和送入数据库部分。比较简单的方法就是安装jdk1.3
这样的话,接受参数就不会有问题了。因为不知道你数据库乱码的表现形式,所以也不能恨确定。你这段代码可以用了的话,最好把上一道题结了,免得大家浪费时间回答。

解决方案 »

  1.   

    http://dwgateway/developerWorks/java/java_chinese/index.shtml
      

  2.   

    可以试试:
    prestmt.setString(1,new String(subject.getBytes(),"iso-8859-1"));
    prestmt.setString(2,new String(username.getBytes(),"iso-8859-1"));
    prestmt.setString(3,new String(message.getBytes(),"iso-8859-1"));     
      

  3.   

    <%!
    public String getStr(String str)
    {
    try
    {
    String temp_p=str;
    byte[] temp_t=temp_p.getBytes("ISO8859-1");
    String temp=new String(temp_t);
    return temp;
    }
    catch(Exception e)
    {}
    return "NULL";
    }
    %>这个程序我是抄书上了,上面这个函数与楼上的方法不是一样吗?
      

  4.   

    不一样。
    对了,应该是只要把getStr()方法改
    public String getStr(String str)
    {
    try
    {
    String temp_p=str;
    byte[] temp_t=temp_p.getBytes();
    String temp=new String(temp_t,"iso-8859-1");
    return temp;
    }
    catch(Exception e)
    {}
    return "NULL";
    }
      

  5.   

    开始没看清,如果你用的是jdk1.3的话,不要用getStr方法,会出错的。
    如果数据库中的乱麻取出后可以显示的话,可能是系统编码问题,可以到数据库里看看
    乱码是不是形如:"&#12345;"之类的
      

  6.   

    好,谢谢LMY2000,我实验一下。
    我用的是weblogic6.0
      

  7.   

    这样也可以 ,可以一试
    public static synchronized String zhPara(String s)
      {
        try
        {
          s=new String(s.getBytes("iso8859-1"),"gb2312");
    //        s=new String(s.getBytes("iso8859-1"));
        }
        catch(Exception e)
        {
          return "";
        }
        return s;
      }