字段名称不要用中文,如果用中文的话,一定要将ORACLE数据库的文字编码设置成UTF-8,或GB2312.

解决方案 »

  1.   

    你可以用下面的程序转化一下
    public String CtoU(String s) 
    {
    byte[] tmpbyte;
    if(s!=null)
    {
    try
    {
    tmpbyte=s.getBytes("ISO8859_1");
    s=new String(tmpbyte);
    }catch(UnsupportedEncodingException e)
    {

    System.out.println("UnsupportedEncodingException ");
    return s;
    }
    }
    return s;
    }
      

  2.   

    1、最好你将sql语句贴出,给大家讨论
    2、是否你java调用sql语句的参数有错?
    3、字段名称用中文?真的不好
      

  3.   

    是哪个做ORACLE DBA 的把字段名写成了中文的
    开除!
      

  4.   

    1.SQL语句是没错的,很简单的,在SQL PLUS里执行正确的。
    2.Statement的executeQuery方法,参数只有一个,就是SQL字符串,这个也是错不了的,都用过几百次的了。
    3.可能我没说清楚,字段名是英文的,但该字段里的数据是中文的。
      

  5.   

    我现在用字节流接收ResultSet,把结果写到文件里,还是“靠”,崩溃........
      

  6.   

    我用oracle 8i,当用java从中取汉字时(当然作为字段值了),从来没有涉及到编码的
    应该是数据库安装时的默认编码不支持中文的问题,改掉后,取出来的数据就不需要转码了
      

  7.   

    to :langjianjun(绝对在乎你) 
    好象你说的不对吧?我们的oracle装在ibm 的aix操作系统的,哪个肯定不是中文的内核的
    但是将编码方式改掉,也是可以的
      

  8.   

    再补充:数据库编码ISO8859_1(prop$表里的Character set值是WE8ISO8859P1)
      

  9.   

    是Unix或Linux系统吗?,如果是则需要修改字符集
      

  10.   

    Windows 2000 Advanced Server
      

  11.   

    可能是数据库字符集的问题。我们以前做过的项目,如果数据库使用的字符集支持汉字的话(例如 UTF-8,GB2312),那么 Java 通过 JDBC 取出来的数据库字段值内容是完全可以直接显示其中的中文的;如果使用的字符集本身不支持汉字的话(例如 ASCII7),需要经过 getBytes("") 的转换(中间那个 encoding 忘了是写 GB2312 还是 iso8859-1 了 :)
      

  12.   

    检查Oracle客户端和服务器端字符集是否一致
      

  13.   

    oracle对中文的支持还可以,但是中文的数据无法比较,因为你用了“用了WHERE带中文的SELECT语句,还是取不到记录”,嘿嘿,这是很正常。至于第一个问题,只要在写入数据库之前转换编码,比如gb2312  to  iso8859_1,然后在读出之后在转换回来。应该没问题。
      

  14.   

    String str = new String((String)request.getParameter("str").getBytes("iso-8859-1"),"GB2312");
      

  15.   

    serlet2.3的时候,可以在每个页面包含一个语句就可以解决中文问题了哦。
    具体是response.setCharsetEncoding("gbk");
    这个根据具体定咯,你在看看帮组。