C#操作Oracle数据库中文乱码问题解决
最近公司有一个对外项目,采用的是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);
}
如果还有更好的办法麻烦大侠推荐下 ~
C#操作Oracle数据库中文乱码问题解决的更多相关文章
- cx_Oracle读取Oracle数据库中文乱码问题解决
在使用cx_Oracle模块读取Oracle数据库中的中文记录时,返回值皆为?,后google得此佳文,遂问题得以解决,特此记之. Oracle数据库版本是10g,字符集是AL32UTF8. 编写的p ...
- DOS命令行操作MySQL数据库中文乱码问题解决
我们在 dos 命令行操作中文时,会报错 ’); ERROR (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 原因:因为 ...
- Oracle数据库中文乱码问题解决
1.查看服务器端编码select userenv('language') from dual;我实际查到的结果为:AMERICAN_AMERICA.ZHS16GBK 2.执行语句 select * f ...
- Oracle数据库中文乱码问题
最近碰到Oracle乱码问题,刚开始甚是头疼,以前在合肥出差的时候,这种问题也碰到过,当时直接抛给了“乌压压一片”(一个搞数据的同事儿),这次没办法躲过,只好硬着头皮上.虽然我这次碰到的是Oracle ...
- PL/sql developer连接数据库的问题以及oracle数据库中文乱码的问题
今天第二次配置PL/sql developer,表示很蛋疼,昨天因为动了一个东西然后莫名其妙的就再也连接不了数据库,总是显示各种错误,我动的东西是因为中文会显示乱码,(因为我是用32位的PL/sql ...
- plsqldev、oracle插入中文乱码问题解决
最近在开发项目时用到Oracle数据库,需要手动插入一些数据,但插入中文的sql值时出现了乱码. 中文乱码就是编码不统一所导致的了,解决办法只需要把编码统一下即可解决了. 此种情况最大的可能就是客户端 ...
- Oracle数据库数据显示乱码问题解决方法。
一.问题描述: 在将其它数据库的数据导出文件导入本地新建数据库时,所导入的数据全部是乱码,一般表现为数据表中列的值类似于"?????",即内容大部分为?的表现形式.初步 ...
- Java web后台插入数据库中文乱码问题解决
前言:项目想要避免乱码情况的出现,要保持服务器.数据库.项目.以及前端编码一致.一.项目以及前端编码,设置. myeclipse--->右键项目--->Properties--->R ...
- springMVC保存数据到mysql数据库中文乱码问题解决方法
1.web.xml中添加过滤器 <filter> <filter-name>CharacterEncodingFilter</filter-name> <fi ...
随机推荐
- 如何设置div自适应高度
1.给div添加overflow属性 .div{ width:760px; overflow:hidden; } 2.其他的设置height:auto 等我测试没有效果
- phpcms 电脑手机合并
电脑手机端 ========================== <script type="text/javascript"> function browserRed ...
- 邓_ SVN·最新使用教程总结
SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...
- firebird的递归查询
with RECURSIVE cte as ( select a.* from PM_PROJECT a where a.pm_id='root_id' union all select k.* fr ...
- confluence中设置应用程序链接到jira
有时需要在confluence中选中文本直接生成issue或story到jira里. 在"一般配置“->“应用程序链接”中创建即可.
- 百度之星2014复赛 - 1001 - Find Numbers
先上题目: Find Numbers Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- OSX: 安装打印机的有用命令行
事实上非常easy.就是有用lpadmin命令,以下给出一个样例: printername="YOUR_PRINTER_NAME" location="LOCATION ...
- 继续过Hard题目
接上一篇:http://www.cnblogs.com/charlesblc/p/6283064.html 继续过Hard模式的题目吧. # Title Editorial Acceptance ...
- Java中的事务
Java中的事务 学习了:https://www.cnblogs.com/chengpeng15/p/5802930.html 膜拜一下 org 分为三类:jdbc事务.jta事务.容器事务:
- Leetcode45:Intersection of Two Linked Lists
Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...