Quiero hacer este ejemplo y no muestra bien los caracteres en consola.
Código
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Codificación_UTF_8_01 { internal class Program { static void Main(string[] args) { #region Configuración ventana. // Título de la ventana. Console.Title = "Encoder UTF-8"; // Tamaño de la ventana, x, y. Console.SetWindowSize(80, 25); // Color de fondo. Console.BackgroundColor = ConsoleColor.Gray; // Color de las letras. Console.ForegroundColor = ConsoleColor.Black; // Limpiar pantalla y dejarlo todo gris. Console.Clear(); // Visible el cursor. Console.CursorVisible = true; #endregion // Cree una codificación UTF-8. // Una cadena Unicode con dos caracteres fuera de un rango de código de 8 bits. String unicodeString = "Esta cadena Unicode tiene 2 caracteres fuera del " + "rango ASCII:\n" + "Pi (\u03a0), y Sigma (\u03a3)."; Console.WriteLine("Cadena original:"); Console.WriteLine(unicodeString); // Codifica la cadena. Byte[] encodedBytes = utf8.GetBytes(unicodeString); Console.WriteLine(); Console.WriteLine("Bytes codificados:"); for (int ctr = 0; ctr < encodedBytes.Length; ctr++) { Console.Write("{0:X2} ", encodedBytes[ctr]); if ((ctr + 1) % 25 == 0) Console.WriteLine(); } Console.WriteLine(); // Decodifica bytes de nuevo a cadena. String decodedString = utf8.GetString(encodedBytes); Console.WriteLine(); Console.WriteLine("Bytes decodificados:"); Console.WriteLine(decodedString); // Pulse cualquier tecla para salir. Console.ReadKey(); } } }
Dejo aquí la captura.
Ni copiando el propio código de MicroSoft funciona.
Saludos.