c#.net进行odbc连接sybase中文乱码问题

网上找了许久大多数都是去改变sybase的服务器字符集去解决些问题,可公司的sybase数据库是别的pb程序用的,不能改的,新的程序只是想查询一下数据所以只有进行字符集转换了
SELECT PROPERTY( 'CharSet' )
得到字符集cp936,转换如下
Byte[] mybyte = System.Text.Encoding.GetEncoding(936).GetBytes("乱码字符串".ToCharArray());
得到结果还是乱码,想了很久也没明白,看来只能暴力一下了
 StringBuilder pname = new StringBuilder();
  
foreach (EncodingInfo ei in Encoding.GetEncodings())
 {
          Byte[] mybyte 
= System.Text.Encoding.GetEncoding(ei.CodePage).GetBytes(("乱码字符串".ToCharArray());
           pname.Append(ei.Name 
+ "(" + ei.CodePage + "):" + System.Text.Encoding.GetEncoding("gb2312").GetString(mybyte, 0, mybyte.Length) + "\r\n");
      }
 MessageBox.Show(pname.ToString());
得到ibm850(850)与ibm858(858)可以正常显示中文,问题解决,为什么是850与858也不知道有没有朋友知道.
posted @ 2008-06-04 10:55  吴乐章,炎刘中学  阅读(4410)  评论(6编辑  收藏  举报