本帖最后由 l7890590p 于 2013-03-15 13:58:13 编辑

解决方案 »

  1.   

    public static void Main() 
      {
          // Create an ASCII encoding.
          Encoding ascii = Encoding.ASCII;      // A Unicode string with two characters outside the ASCII code range.
          String unicodeString =
              "This unicode string contains two characters " +
              "with codes outside the ASCII code range, " +
              "Pi (\u03a0) and Sigma (\u03a3).";
          Console.WriteLine("Original string:");
          Console.WriteLine(unicodeString);      // Save the positions of the special characters for later reference.
          int indexOfPi = unicodeString.IndexOf('\u03a0');
          int indexOfSigma = unicodeString.IndexOf('\u03a3');      // Encode the string.
          Byte[] encodedBytes = ascii.GetBytes(unicodeString);
          Console.WriteLine();
          Console.WriteLine("Encoded bytes:");
          foreach (Byte b in encodedBytes) 
          {
              Console.Write("[{0}]", b);
          }
          Console.WriteLine();      // Notice that the special characters have been replaced with
          // the value 63, which is the ASCII character code for '?'.
          Console.WriteLine();
          Console.WriteLine(
              "Value at position of Pi character: {0}",
              encodedBytes[indexOfPi]
              );
          Console.WriteLine(
              "Value at position of Sigma character: {0}",
              encodedBytes[indexOfSigma]
              );      // Decode bytes back to a string.
          // Notice missing the Pi and Sigma characters.
          String decodedString = ascii.GetString(encodedBytes);
          Console.WriteLine();
          Console.WriteLine("Decoded bytes:");
          Console.WriteLine(decodedString);
      }