一聚教程网:一个值得你收藏的教程网站

热门教程

C#插入Oracle数据库中文乱码的解决方法

时间:2022-06-25 08:10:09 编辑:袖梨 来源:一聚教程网

主要问题是:oracle客户端软件的字符编码与服务器端的字符编码不一致造成的。

oracle服务端字符编码为: ZHS16GBK
oracle客户端字符编码为:WE8ISO8859P1

解决办法有三种:

(1)修改客户端注册表: 找到Oracle安装注册项下的NLS_LANG,将其值改为"SIMPLIFIED CHINESE_CHINA.ZHS16GBK
(2)通过调用_putenv函数,在程序中用代码设置:
using System.Runtime.InteropServices;
...
[DllImport("msvcrt.dll")]
private static extern int _putenv(string str);

...

_putenv("NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK");

【_putenv("NLS_LANG = AMERICAN_AMRICA.WE8ISO8859P1");//数据库操作】
(3)通过C#自带的函数设置环境变量
System.Environment.SetEnvironmentVarible("NLS_LANG "," SIMPLIFIED CHINESE_CHINA.ZHS16GBK");
【System.Environment.SetEnvironmentVarible("NLS_LANG ","AMERICAN_AMRICA.WE8ISO8859P1");//数据库操作】

热门栏目