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); }
{
// 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);
}