参考:
http://www2.ccw.com.cn/tips/9906/062804_04.asp

解决方案 »

  1.   

    你这篇文章对我这不太适用啊,我现在的问题是在程序里往数据库写入中文的时候出问题,
    其它一切正常,用SQLPlus Worksheet读写都正常,没任何问题。
      

  2.   

    以二进制插入字符串,读出后是byte[],转成UTF-8即可。
      

  3.   

    请使用Oracle DataProvider For .NET ,不要使用Ole提供程序,使用下面的提供程序一般就没有问题了。
    下载链接:
    http://download.microsoft.com/download/dasdk/Install/1.0/W98NT42KMeXP/EN-US/oracle_net.msi
      

  4.   

    daou101
     因为我是在别人的数据库的基础上进行开发,所以不可能以二进制插入数据,读出时转换,那样别人的系统就不能识别我写入的中文数据了,所以我必须以US7ASCII码写进去才行。
    Oracle DataProvider For .NET在US7ASCII编码下读写都会产生乱码,这个我已经试过了。
    我在asp和c#中都试过了,问题相同所以我现在觉得是写入前编码转换的问题。所以现在要解决的是如何把字符串转换成US7ASCII码,然后再写入数据库。
      

  5.   

    oracle数据库里面要使用中文,那个字段必须是varchar2类型才可以,你先检查一下数据库的字段定义。
      

  6.   

    kerlw(科尔)
     我前面说过我是基于别人开发的系统的数据库进行开发的,他们用char存的中文,用的挺好,所以我觉得不是什么字符类型的问题。
      

  7.   

    我现在解决asp的问题了,
    用oracle自己的驱动就出现写库乱码问题 dns="Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=system;Password=manager;Data Source=Test"
    但是用微软的oledb驱动就完全正常了 dns="Provider=MSDAORA.1;Password=manager;User ID=system;Data Source=Test;Persist Security Info=True",
    看来还是oracle的oledb驱动在这个环境下支持没有微软的好。
    但是又有新问题了,我在c#里用微软的这个驱动驱动居然报错。郁闷,就当好事多磨吧~~!
      

  8.   

    字段类型定义的问题就是和这个驱动的问题相关的。Oracle里面不是unicode的编码,而C#里面是的。中文你怎么转化它还是的用Unicode才能正常显示。varchar2就是解决这种问题的,不过你既然说没办法改数据库,那也只有尝试别的方法了。祝你好运吧~解决了别忘了贴出来~^_^
      

  9.   

    经过这几天查找资料,终于明白为什么显示正常而插入不正常了,因为US7ASCII是UTF-8的子集。所以就算在.net里把编码转换成UTF-8再插入进去也是不行的,
    而且我查资料发现。用OLEDB在.net、iis5下开发的时候会出现不稳定情况,有时候会导致iis进程死亡,建议是升级到IIS6。