以前接触的都是SQLSERVER数据,现在的公司都用ORCALE,感觉很郁闷陌生,最近我用程序读取oracle数据库中数据时发现中文全部是乱码。于是我展开了一系列的办法最终解决了此问题。
工作环境:服务器 windows 2003+ oracle。
服务器字符集 SIMPLIFIED CHINESE_CHINA.WE8DEC。
编程环境 VS2005,C#,PLSQL。
方案一:
利用System.Data.OracleClient.OracleConnection类访问数据库。
连接字符串: "Data Source= (DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.0.5)(PORT = 1521)))(CONNECT_DATA = (SID = DEV))) ;User Id=lswen;Password=1169"
将本地字符集改为与服务器相同。
打开注册表regdit:HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOMEO 中NLS_LANG改为: SIMPLIFIED CHINESE_CHINA.WE8DEC。
这个方法简直就像噩梦,根本解决不了,网上有很多人发表用这种方法。答案是片面的,如果服务器的字符集是: ZHS16GBK那么此法就可以解决。字符集WE8DEC是西欧字符集本身包含的汉字就不多,之所以它允许用存入汉