程序是ASP.NET2005访问ORACLE92,数据库服务器是ORACLE92  US7ASCII字符集,查询出来的中文字为“?”,在pl/sql中查询也是出现"?",
目前已经尝试的的方法:对B客户端下面主键改成US7ASCII
1.HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\下面的NLS_LANG主健
2.HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 下面NLS_LANG主健
  请教各位高手,这是为什么?怎样解决。

解决方案 »

  1.   

    开始菜单-运行-cmd
    在命令行下输入set nls_lang=AMERICAN_AMERICA.UTF8
    在进入SQLPLUS试试看C:\Documents and Settings\Admin>set nls_lang=AMERICAN_AMERICA.UTF8C:\Documents and Settings\Admin>sqlplus "/ as sysdba"SQL*Plus: Release 10.2.0.1.0 - Production on Fri Oct 23 13:28:24 2009Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
      

  2.   

    在你的程序中对取出来的数据进行转码
    String t = new String(rs.getString(1),"GBK");
    --或者GBK改为UTF-8等等。
    这事java的,.NET应该也有相应转码的。
    数据库的字符集不要随便改。
      

  3.   

    表结构:
    IID NUMBER 编号 10
    REPORTNAME VARCHAR2 报表名 50
    GW VARCHAR2 所属岗位 50
    PAGEURL VARCHAR2 链接 100
    DBTABLE VARCHAR2 关联数据表列表 100
    IMGURL VARCHAR2 图标地址 100
    POINTID NUMBER 采集点 10
    VIEWFIELD VARCHAR2 显示字段名列表 200
    VIEWCODE VARCHAR2 显示字段列表 200
    查询语句 :select * from   SYS_REPORTINFO
      

  4.   

    按我在#2说的方法在SQL*PLUS里试过没有? 查询出来也是问号?
      

  5.   

    http://topic.csdn.net/u/20091023/13/0c25c69a-a327-4062-9961-2a8a07479153.html可以参考下这个链接~
      

  6.   

    解决了,DONET链接英文字符集的ORACLE数据库时,如果是Oracleclient链接时,查询出来的是“?”如果用Provider=MSDAORA查询出来 的就是中文。与大家同共学习