想壮的瘦人

知识需要不断积累和总结。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

在做项目过程中,遇到Oracle 9i或9i版本以上客户端连接Oracle 8i及8i版本以下服务器端时,查询出来的中文数据全部变成了乱码。经查询资料终于解决了乱码问题。

开发工具是ASP.NET(C#)+ Oracle,使用System.Data.OracleClient方式连接Oracle数据库。

解决办法一(第一项可以不执行,但要确保服务器端和客户端字符集一样)

 

1.       进入SQL PLUS 输入命令:select userenv('language') from dual; 查询字符集结果为

SIMPLIFIED CHINESE_CHINA.ZHS16GBK。

2.     

 

开始-运行-键入regedit进入注册表,为以防万一,先备份注册表,然后找到HKEY_LOCAL_MACHINESOFTWAREORCALE,可以看到名称为NLS_LANG项,将其数据(键值)改为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

3.     

 

ORACLE目录下,其他子目录,如有个HOMEO项,点击HOMEO,也可以看到NLS_LANG项,删除它。如有HOMEO1等等项,下面如有NLS_LANG项,均删除。

4.       关闭注册表。

5.       运行程序测试结果是否解决乱码问题。

6.       注意:可以先不执行第1项。但要确保客户端和服务器端字符集一样。

 

解决办法二:使用System.Data.Oledb方式连接,则可以直接避免中文乱码。

posted on 2009-07-01 18:25  想壮的瘦人  阅读(1154)  评论(0编辑  收藏  举报