问题描述:
1、开发环境:本地:XP+oracle9i+vs.net2003;数据存放在远程数据库oracle9i中编码字符集为American_America.US7ASCII
2、代码:
string cnString = ConfigurationSettings.AppSettings["ConnectionString"];
OracleConnection cn = new OracleConnection(cnString);
OracleCommand cmd = new OracleCommand();
cmd.Connection = cn;
cmd.CommandText = "GET_SE";
cmd.CommandType = CommandType.StoredProcedure;
OracleDataAdapter da = new OracleDataAdapter(cmd);
OracleDataAdapter da = new OracleDataAdapter("select se,mc from zsxx",cn);
DataSet ds = new DataSet();
da.Fill(ds,"SE");
DataGrid1.DataSource = ds.Tables["SE"].DefaultView;
DataGrid1.DataBind();
3、说明:字段se为NUMBER型,mc为nvarchar2,且mc为中文数据,就是这中文无法正常显示。
         不能更改数据库,因为是远程数据库,只给查询权限!
4、试过的方法:
   (1)修改过web.config文件<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>
    (2)另存为过显示页,并更改其保存编码。
查了很久也没能解决,希望达人帮助,分随你要,当然尽我所有了。国
    (3)byte[]   arr=System.Text.Encoding.UTF7.GetBytes(str); 前三个贴:2006-11-2 17:22:49  http://community.csdn.net/Expert/topic/5128/5128785.xml?temp=.181637
2006-11-1 17:20:17 的贴:http://community.csdn.net/Expert/topic/5122/5122582.xml?temp=.7934992
2006-10-31 15:56:32 的贴http://community.csdn.net/Expert/topic/5125/5125835.xml?temp=.6941645

解决方案 »

  1.   

    确定在sqlplus里查询没有乱码吗?
      

  2.   

    1 确定能够在sqlplus或者plsql或者toad或者其他工具里进行查询的时候,能够正确显示中文
    2 程序中使用的字符集保持和数据库字符集一致;
      

  3.   

    这里没有oracle+.net的开发高手吗?
      

  4.   

    本地客户端的字符集要与服务器端American_America.US7ASCII一致
      

  5.   

    设置本地的注册表中的nls lang为中文字符集。
      

  6.   

    首先要确定是不是远程数据库中有乱码(这里应该是不可能的).然后在本地装个ORACLE客户端访问一下看看是否有乱码.如果有乱码的话,就要修改本地nls_lang看看,祝你好运!
      

  7.   

    我最近在用c#读取oracle的LDAP服务器 好像也遇到了乱码  读取的中文字符没实际意义 怀疑可能也是乱码
      

  8.   

    纯粹是来接分的。因为我是个Oracle白痴
      

  9.   

    在SQL里是乱码吗,如果不是就不是数据库的问题拉
      

  10.   

    编一段代码,从程序中运行
    select * from sys.v_$nls_parameters
    看返回的数据,
    如果“http://community.csdn.net/Expert/topic/5125/5125835.xml?temp=.6941645”是从程序中返回的,就有问题了!!!
    可以看看客户端注册表是(NLS_LANG )什么,对应home下面(一般为home0)
    要不就看oracle连接对象中有没有语言环境的参数,或者执行类似alter session的设置命令
    nvchar2主要受“NLS_NCHAR_CHARACTERSET”影响
      

  11.   

    以前发现用oledb时,客户端的字符串的语言,不受注册表控制,odbc的情形不一样,具体的记不清楚了,或者改种方式试一试
      

  12.   

    AMERICAN_AMERICA.US7ASCII
    不能直接表达汉字
    需要转换,类似encode/decode , escape/unescape
      

  13.   

    看看你的IIS服务器上的Oracle的配置。