oracle的字符集为WE8ISO8859P1, 使用C#插入中文时的奇怪问题
ORACLE数据库的字符集为WE8ISO8859P1,
注册表项中ORACLE下跟字符集有关的三个注册表项(NLS_LANG)均设为了
AMERICAN_AMERICA.WE8ISO8859P1
使用PL/SQL Developer用INSERT语句插入中文时没有问题, 但使用C#的System.Data.OracleClient调用INSERT语句时, 插入的中文均成为 "靠靠靠靠…… "(两个字一个靠!)
------解决方案--------------------HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
这里有个 NLS_LANG 设置成 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
其它的好象是设置成 American_America.UTF8
------解决方案--------------------使用 Encoding.GetEncoding(936) 获得GBK的Encoder, 将中文字符串转为GBK byte[], 再将这个byte[]转为对应的char[], 再将char[]转为string, 将这个string作为insert语句的参数, 即可正确插入中文
------解决方案--------------------使用 Encoding.GetEncoding( "gb... ")
gb后面的数字记不清了,你试试这个看