我用的数据库为oracle9i。数据库的字符集设置为:ZHS16GBK。数据库中,一个表中某个字段的内容为繁体字,字段类型为varchar2类型。我用toad8.0去访问数据库的数据时,该记录能够正常的显示繁体字。但是,我用9i带的thin驱动去读数据库的该记录时,就会读出?号。在网上找了很多文章,也没有找到个解决的办法,特来向大家请教!就是用java取到连接后,然后执行查询的SQL。再执行rs.getRecord(i).getString("字段名")这句时,如果该字段的内容全部为中文简体或者是英文,则都正常。但只有是繁体就会出来?号。象这个情况该怎么解决?

解决方案 »

  1.   

    我建议你oracle实例采用utf-8字符集,
    这是经验之谈
      

  2.   

    问题是用TOAD这样的工具去数据库查的时候,显示是正常的。只是用JDBC取出来的时候显示不正常。如果是数据库的字符集设置不对的话。应该写进去的时候,显示就不正常呀。顺便说一句,写入数据库是另外一个程序写入的。他用的weblogic的jdbc的连接池方式进行数据库操作。
      

  3.   

    java程序中的字符集是否正确?
      

  4.   

    我的java程序没有设置字符集。但是我用getchars转换过还是无效。不知道到底怎么回事,也可能是我转换的方式不对。还请各位指教。
      

  5.   

    在JAVA 中连接数据库后,返回结果集后,rs.getString(i)得到的结果进行字符转换。
      

  6.   

    要在客户端正确显示ORACLE 数据库汉字信息,
    1.先必须使服务器端的字符集与客户端的字符集一致;
    2.加载到ORACLE数据库的数据字符集必须与服务器指定字符集一致
    参考:http://www.oracle.com.cn/viewthread.php?tid=15066&highlight=%D7%D6%B7%FB%BC%AF&page=1