Oralce9i Server   的字符集和   Oracle   Client([HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEO])   字符集设置一样。(WE8ISO8859P1)
用PLSQL 工具查看记录,中文能正常显示,用C#的System.Data.OracleClient编程查询数据返回到dataset,dataset里面中文显示的就是乱码,
太怪了,重来没有见过,高手快来帮帮忙!

解决方案 »

  1.   

    C#里面有控制字符集的地方吗? 忘记了. PLSQL是通过本地注册表的字符集决定是否进行数据转换的, 你设置了一样,当然就不存在转换的问题了. 而C#, 我想应该是根据当前系统的字符集进行转换的吧(我猜测,因为以前我做过一小段C#程序, 似乎没有地方设置字符集的.), 你找个中文字符集的数据库看一下,  ZHS16GBK或相关子集.
      

  2.   

    晕,将数据库的字符集改成ZHS16GBK就可以了,但是我的系统要求数据库用WE8ISO8859P1字符集,不能更改呀,怎么办呀?
      

  3.   

    现在是这样的,我改用oledb连接oracle9i数据库,查询表的记录,中文能显示正常了,但是执行存储过程返回值的中文还是乱码,又不能更改数据库的字符集,真不知道从何下下手,高手们快来搭救啊!!!
      

  4.   

    Encoding encoder = Encoding.GetEncoding("WE8ISO8859P1");
    不知道对不对,试试看
      

  5.   

    把乱码用  System.Encoding.GetEncoding("GB2312")
    转换