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也不知道有没有朋友知道.

你可能感兴趣的:(c#.net进行odbc连接sybase中文乱码问题)