你的数据库的字符集是america?
你用sqlplus能看到中文吗?

解决方案 »

  1.   

    如果 Oracle 9i 是使用 america 字符集,据说 Oracle 的驱动是将其转换到 UTF16,JAVA 中UTF16 有两种:UTF-16BE Sixteen-bit UCS Transformation Format, big-endian byte order 
    UTF-16LE Sixteen-bit UCS Transformation Format, little-endian byte order new String(credInfo.getBytes("UTF-16BE"),"GBK"); 
    new String(credInfo.getBytes("UTF-16LE"),"GBK"); 楼主这样试一下,成不成回个话,我也很想知道。
      

  2.   

    回 doway(john):  都不成那。。
    用 UTF-16BE   显示的中文类似?3 1?
    用 UTF-16LE   也同样不可以回 infowain(infowain) 同样不是中文
    客户端如果用pl/sql 看中文记录也是???  只有客户端改了字符集就能看中文了。。
    但现在是用b/s方式,。。不见得客户端也要改字符集吧
      

  3.   

    那么空的呢?new String(credInfo.getBytes(),"GBK"); 
    new String(credInfo.getBytes(),"UTF-8");楼主是否也试过了?
      

  4.   

    在客户端用
    credInfo = new String(credInfo.getBytes("ISO8859-1"),"GBK"); 
    类似的方法进行一次编码转换试试看
      

  5.   

    感谢两位,具体解决,还是在服务器端 用 credInfo = new String(credInfo.getBytes("ISO8859-1"),"GBK"); 在客户端修改了下注册表,使它和服务器端字符集一致,然后就OK了[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
    "NLS_LANG"="AMERICAN_AMERICA.US7ASCII"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0]
    "NLS_LANG"="AMERICAN_AMERICA.US7ASCII"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
    "NLS_LANG"="AMERICAN_AMERICA.US7ASCII"