在asp.net中可以通过下面的代码对字符集进行控制
    <globalization 
            requestEncoding="gb2312" 
            responseEncoding="gb2312" 
   />
但是winform如何来控制字符集呢
c#(winform)默认的字符集是什么?
如何将一个含有中文的字符串转换成gb2312的格式?

解决方案 »

  1.   

    StreamReade sr = New StreamReader(File.OpenRead("d:\wgscd.htm"), System.Text.Encoding.GetEncoding("gb2312"));
      

  2.   

    WinForm下的字符集使用和ASP.NET是不一样的,WinForm默认是使用Unicode。如果转换字符串编码,可以参考下面代码:
    using System;
    using System.Text;namespace ConvertExample
    {
       class ConvertExampleClass
       {
          static void Main()
          {
             string unicodeString = "This string contains the unicode character Pi(\u03a0)";         // Create two different encodings.
             Encoding ascii = Encoding.ASCII;
             Encoding unicode = Encoding.Unicode;         // Convert the string into a byte[].
             byte[] unicodeBytes = unicode.GetBytes(unicodeString);         // Perform the conversion from one encoding to the other.
             byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
                
             // Convert the new byte[] into a char[] and then into a string.
             // This is a slightly different approach to converting to illustrate
             // the use of GetCharCount/GetChars.
             char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
             ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
             string asciiString = new string(asciiChars);         // Display the strings created before and after the conversion.
             Console.WriteLine("Original string: {0}", unicodeString);
             Console.WriteLine("Ascii converted string: {0}", asciiString);
          }
       }
    }