做个转换:
String getCnString(String s){
String tmp;
byte[] b;
try{ b=s.getBytes("ISO8859-1");
     tmp = new String(b);
     return tmp;
   }
   catch(Exception ex){
   }
   return null;
}

解决方案 »

  1.   

    存入的时候保证汉字没有乱码,这样从数据库中读出来的就没有问题了,
    也就是在存入之前转换就可以了,我用的是weblogic不知道对你是否一样
      

  2.   

    以前我有类似问题,是因为要存储的中文数据从request中得到后就是乱吗,需要转换,如果不转化存储进去的就是乱吗,从数据库中读出当然也不对。不知道你是不是这个原因。
      

  3.   

    在将数据存入数据库前转换,将字符串由“ISO8859_1”转换为“GBK”
     public static final String toChineseNoReplace(String strVal)
        {
            try
            {
                if (strVal == null)
                {
                    return "";
                }
                else
                {
                    strVal = strVal.trim();
                    strVal = new String(strVal.getBytes("ISO8859_1"), "GBK");
                    return strVal;
                }
            }
            catch (Exception exp)
            {
                return "";
            }
        }将数据从数据库中取出后转换,将字符串由“GBK”转换为“ISO8859_1public static final String toISO(String strVal)
        {
            try
            {
                if (strVal == null)
                {
                    return "";
                }
                else
                {
                    strVal = new String(strVal.getBytes("GBK"), "ISO8859_1");
                    return strVal;
                }
            }
            catch (Exception exp)
            {
                return "";
            }
        }
      

  4.   

    我的数据库在sqlplus中select可以显示出汉字,在有一个JSP页中也能正确显示,但是在大部分页面中不能显示。
      

  5.   

    就是字符集的问题,首先你的驱动要是比较新的,这样才能保证字符的转换是正确的!
    存入的时候保证汉字没有乱码,这样从数据库中读出来的就没有问题了,
    也就是在存入之前转换就可以了,这是正确的!
    以前我有类似问题,是因为要存储的中文数据从request中得到后就是乱吗,需要转换,如果不转化存储进去的就是乱吗,从数据库中读出当然也不对,这个也是正确的
    下边我有一个,字符转化的代码,你可以看看!你的页面的字符集也要使gb2312的!
    public static String charConvert(String strSource){
                if (strSource == null){
                    return "";
                }
                else{
                    try{
                      //return new String(strSource.getBytes("GB2312"), "ISO-8859-1");
                      String str = new String(strSource.getBytes("ISO-8859-1"), "GB2312");
                      System.out.println(str);
                      return str;
                    }
                    catch (Exception ex){
                      System.out.println(ex.toString());
                      return "";
                    }
                }
            }
      

  6.   

    我开始写的时候还没有wangqyhubei(mm),提叫了发现你在楼上,早知道我不做无用功了。呵呵。
      

  7.   

    现在在数据库中已经有数据,在sqlplus中也能显示,那他应该是什么字符集啊?ASCII7?还是别的?该怎么解决啊?
      

  8.   

    建议用filter作一个过滤器,这样方便一些,也就是j2ee模式提到的过滤器模式。
      

  9.   

    <%@ page contentType="text/html; charset=gb2312" %>
      

  10.   

    使用<%@ page contentType="text/html; charset=gb2312" %>不行,首先数据库连接就通不过。
      

  11.   

    一个String 型变量 str 存入数据库前做一下处理: 
    if(!str.equals(null))
     str=str.getBytes("ISO8859-1","GBK");
      

  12.   

    我只用charset=gb2312,数据库用的是9i,在jsp和html中,都引入charset=gb2312,就可以了,数据库和jsp页都能正常显示,但是如果加了 ISO8859-1,就不行了.供你参考
      

  13.   

    因为我用的数据库字符集AMERICAN_AMERICA.US7ASCII,不是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,所以在网页中引入charset=gb2312时,连接数据库会出现问题,显示都是乱码。但是如果把页面的charset=gb2312去掉,读数据库直接输出的汉字可能显示正确,但由JSP输出(out.print(...))的汉字就会成为乱码(有时候数据库也出现乱码)。现在就是这个问题,请教该怎么解决?
      

  14.   

    1. 首先设定网页的基本内码UTF-8
    <%@ page contentType="text/html; charset=UTF-8" %>
    2. 设定JBuilder的编绎时的内码为ISO-8859-1.
    JBuilder的菜单操作为Project --> general --> Enconding --> ISO-8859-1.设置成功, JBuilder下面的状态栏显示为ISO-8859-1. 并编绎成功。3. 如果数据是从Oracle数据库中取出, 则真接在页面显示,不须要转换。 如果是从页面接收回来的字符串, 则必须进行转换。 (setXXX方法中)  public void setXXX(String newValue) {
        this.newValue = ISOtoUTF-8(newValue);
      }
      public String ISOtoUTF8 (String aISOString) {
        if (aISOString == null) return "";
        try {
          return new String (aISOString.getBytes("ISO-8859-1"),"UTF-8");
        } catch (java.io.UnsupportedEncodingException e ) {
          System.out.println(e.getMessage());
          return "";
        }
      }
      

  15.   

    补充:
    4. 如果要JDBC支持多国语言, 还要把nls_charset1.2.zip加入到classPath中或加入复制到web-info/classes下。这文件可以在%Oracle_Home%/JDBC/lib下找到。