解决C#使用OracleManagerDataAccess.dll直连低版本数据库出现中文乱码的问题,传统修改字符集无效。建议改用OleDbConnection连接方式(需安装驱动插件),并正确配置连接字符串设置Unicode=True参数,确保中文正常显示。
Oracle较低版本中文乱码
症状:c# + OracleManagerDataAccsee.dll 直连某一个Oracle版本较低的数据库时出现中文乱码 输出只能看到“?” 按照网上说的办法修改本地字符集编码之类的办法无效
逛论坛看到有个同学提了这个问题,症状和之前碰到过的一次差不多 这里记一下 ,当时为解决这个问题可真是抓破头皮 最后试出来的解决办法,万一有人用得到不用瞎折腾!
最初百度网上都是说字符集编码问题之类的修改了就成, 但实际修改了也没啥作用(当然有可能部分类似的情况确实可以解决 建议先试其他的不行再试以下方法)
中文乱码解决办法
站长是采用 OleDbConnection 的方式去连接oracle数据库(缺点就是需要安装一个客户端驱动插件 对于有软件洁癖的人来说 比较纠结)
需要注意的是 使用的数据库连接字符串有些区别 : 这里提供一个例子
OleDbConnection连接字符串例子
Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)
(HOST=【服务器地址】)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=【服务名称|SID】)));
User Id=【用户名】;Password=【密码】;Unicode=True