Fork me on GitHub

解决 C# 连接oracle 读出中文乱码的问题

一开始,我使用odbc连接oracle,发现中文变成了??,这种已经成了??的乱码是不能通过 Text.Encoding的方式来转码的。
1.我到处查资料,发现有说设置客户端 系统变量 把 远程服务器(安装了oracle服务器)的编码写到客户端里的系统变量里。
查编码:select userenv('language') from dual
2.把odbc改用oledb驱动。去官网下载,下载地址:
oracle11g的下载11以上包括11的的版本。
这里我已经下载好了,百度网盘分享出来
提取码:83wx
这个里面的驱动很全的。
 
下载好了之后,如果还是提示 找不到oledb驱动,
就去刚才那个的安装目录下的bin看看有没有OraOLEDB*.dll,如果有就用regsvr32 注册这个dll,
这个regsvr32 再c:\windows\syswow64路径下面的。
之后,再注销和重启一下计算机。
最后oledb的连接字符串:
provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.255.253.79)(PORT = 1521)))(CONNECT_DATA = (SID =orcl))) ;User Id=0922;Password=0922
posted @ 2020-11-02 23:53  HelloLLLLL  阅读(765)  评论(0编辑  收藏  举报