100分求解决oracle汉字乱码问题!!! 
症状:Oracle     
   服务器客户端编码相同为AMERICAN_AMERICA.WE8DEC
   在Sqlplus中Select出来正常为汉字       
   用C#+MSPetshop的OraHelper显示出来为乱码       
   请大家帮忙诊治诊治,我已经郁闷得不行了 !!!   最好能提供源码,真是不胜感激呀!!! 在线等!!!

解决方案 »

  1.   

    怎么没人回答呀  ?
    CSDN的人都潜水了  ?
      

  2.   

    你的OraHelper显示前转一下码啊,你的C#的默认的编码和oracle默认的不一致,那只能你自己进行手工编码了
      

  3.   

    OraHelper 
    是不是用的 
    OracleClient?
    如果是Oledb的话 好想有问题
    最好的还是JAVA实现  UTF-8没的问题
      

  4.   

    C#的开发工具显示用的字符集与oracle的字符集不符。
    建议修改C#
      

  5.   

    服务端和客户端编码相同,sqlplus自然会显示正常数据。但如果编码不是GBK或GB2312或UTF-8,我们用程序从数据库中取出来的数据就会是乱码,一般是ISO-8859-1编码的数据。Java中用 new String(str.getBytes("ISO-8859-1"), "GBK") 将str先还原为ISO编码在转换为GBK编码,即可正常显示中文。C#不熟,你应该清楚怎样转换。
      

  6.   

    如果能够保证oracle数据库和客户端的字符集相同的话,那么问题可能出在c#上。
    我以前也遇到过乱码问题,不过和你的情况不一样。我的是通过CRT连接数据库后,查询出来的带有中文的记录就出现乱码。不过把客户端的字符集和数据库的字符集设置一样就ok了
      

  7.   

    System.Text.Encoding.Convert()   用这个进行字符转换。Encoding   utf8=Encoding.UTF8;  
      Encoding   gb2312=Encoding.GetEncoding("GB2312");  
      //转为utf-8格式  
      if   (oldSort==1)  
      {  
      byte[]   bgb=gb2312.GetBytes(oldCode);  
      byte[]   butf=Encoding.Convert(gb2312,utf8,bgb);  
      string   sutf8=utf8.GetString(butf);      
      return   sutf8;  
      }  
      //转回gb2312  
      else  
      {  
      byte[]   u=utf8.GetBytes(oldCode);  
      byte[]   gb=Encoding.Convert(utf8,gb2312,u);  
      string   sGb=gb2312.GetString(gb);  
      return   sGb;  
      }   
      

  8.   

    在数据库端添加系统变量ORA_NCHAR_LITERAL_REPLACE,值为True,具体操作如下:
    我的电脑—右键—属性—高级—环境变量—系统变量,添加新变量ORA_NCHAR_LITERAL_REPLACE,值为True。参考信息(强烈推荐):http://blog.sina.com.cn/s/blog_503cbc890100b483.html~type=v5_one&label=rela_nextarticle

    http://dev.tot.name/db/html/20090321/20090321222032.htm
      

  9.   

    webconfig文件做以下配置
    <globalization culture="zh-CN" requestEncoding="gb2312" responseEncoding="gb2312" uiCulture="zh-CN"/>
    Oracle字符集:
    SIMPLIFIED CHINESE_CHINA.ZHS16GB