public static void Main() { // Get an encoder and a decoder from UTF32Encoding. UTF32Encoding u32 = new UTF32Encoding(false, true, true); Encoder myEnc = u32.GetEncoder(); Decoder myDec = u32.GetDecoder(); // The characters to encode: // Latin Small Letter Z (U+007A) // Latin Small Letter A (U+0061) // Combining Breve (U+0306) // Latin Small Letter AE With Acute (U+01FD) // Greek Small Letter Beta (U+03B2) char[] myChars = new char[5] { 'z', 'a', '\u0306', '\u01FD', '\u03B2' }; Console.Write("The original characters : "); Console.WriteLine(myChars); // Encode the character array. int iBC = myEnc.GetByteCount(myChars, 0, myChars.Length, true); byte[] myBytes = new byte[iBC]; myEnc.GetBytes(myChars, 0, myChars.Length, myBytes, 0, true); // Print the resulting bytes. Console.Write("Using the encoder : "); for (int i = 0; i < myBytes.Length; i++) { Console.Write("{0:X2} ", myBytes[i]); } Console.WriteLine(); // Decode the byte array back into an array of characters. int iCC = myDec.GetCharCount(myBytes, 0, myBytes.Length, true); char[] myDecodedChars = new char[iCC]; myDec.GetChars(myBytes, 0, myBytes.Length, myDecodedChars, 0, true); // Print the resulting characters. Console.Write("Using the decoder : "); Console.WriteLine(myDecodedChars); }