C#操作Oracle数据库中文乱码问题解决
2024-08-26 23:34:18
最近公司有一个对外项目,采用的是oracle数据库,以前做的项目基本都是SQLserver,有和oracle对接的也就一些简单的增删查改。
还巧合的遇到乱码问题,网上各种查找,筛选,总算是把问题解决了。但是也不算完美,所以还想看看有没有大侠有没有更好的办法。
服务器编码为:AMERICAN_AMERICA.WE8ISO8859P1
首先HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1增加字符串值NLS_LANG 值:AMERICAN_AMERICA.WE8ISO8859P1
使用OracleClient读取是乱码,并且改注册表项、环境变量都没用。扑街。。。
使用ODP.NET,读取写入均是乱码,写入可以在执行之前对SQL语句进行重新编码解决,但是读取, 如果有几千行数据,每行几十个字段 , 一个一个转 ? 扑街。。。
最终使用的是OleDb,
连接字符串配置的Provider=oraoledb.oracle (网上有说写成 Provider = MSDAORA.1 这个貌似不太支持64位系统 直接连接不上数据库)
读取中文没啥问题,插入更新之前,把SQL语句重新编码一下就行
public string ToChString(string str)
{
System.Text.Encoding gbk_encoder = System.Text.Encoding.GetEncoding("gb2312");
byte[] bs = gbk_encoder.GetBytes(str);
char[] cs = new char[bs.Length];
for (int i = ; i < bs.Length; i++)
cs[i] = Convert.ToChar(bs[i]);
return new String(cs);
}
如果还有更好的办法麻烦大侠推荐下 ~
最新文章
- CSS基础篇之背景、过渡动画
- Windows Azure Storage (19) 再谈Azure Block Blob和Page Blob
- (转) The major advancements in Deep Learning in 2016
- [LeetCode][Java]Candy@LeetCode
- spring security 图解过滤器的使用
- Vuejs-组件-<;slot>; 标签分发内容
- Html5 <;video>;实现摄像头监控问题:html5并不支持rtsp协议,所以使用vlc进行转码,将rtsp转http流,这样<;video>;才可以直接播放
- 用 EPWA 写一个 图片播放器 PicturePlayer
- 在VS代码中使用版本控制
- SAP 000 客户端初始登录
- putty颜色调整
- POI的XWPFParagraph.getRuns分段问题 多余逗号
- ajax回调中执行window.open被拦截的解决办法
- JavaScript中的appendChild()方法
- js刷新页面方法 -- (转)
- PHP 时间与日期
- NanoPi2
- 15_游戏编程模式EventQueue
- GO语言list剖析
- C#自制png转ico图标工具
热门文章
- eas之日期选择控件
- 终于等到你!微软正式上线 Windows Terminal 预览版
- 博弈论题目总结(二)——SG组合游戏及变形
- EurekaLog是什么鬼?
- lucene_08_solr导入数据库数据
- Timus - 1213 - Cockroaches!
- Spring注解@Repository、@Service、@Controller、@Component
- MySQL 面试题目
- HDU 5358(2015多校联合训练赛第六场1006) First One (区间合并+常数优化)
- CodeForces 453A 	 概率题