Respuestas:
Es probable que su codificación de salida esté establecida en ASCII. Intente usar esto antes de enviar la salida:
Console.OutputEncoding = System.Text.Encoding.UTF8;
( Enlace de MSDN a la documentación de respaldo).
Y aquí hay una pequeña aplicación de prueba de consola que puede encontrar útil:
C#
using System;
using System.Text;
public static class ConsoleOutputTest {
public static void Main() {
Console.OutputEncoding = System.Text.Encoding.UTF8;
for (var i = 0; i <= 1000; i++) {
Console.Write(Strings.ChrW(i));
if (i % 50 == 0) { // break every 50 chars
Console.WriteLine();
}
}
Console.ReadKey();
}
}
VB.NET
imports Microsoft.VisualBasic
imports System
public module ConsoleOutputTest
Sub Main()
Console.OutputEncoding = System.Text.Encoding.UTF8
dim i as integer
for i = 0 to 1000
Console.Write(ChrW(i))
if i mod 50 = 0 'break every 50 chars
Console.WriteLine()
end if
next
Console.ReadKey()
End Sub
end module
También es posible que su elección de fuente de consola no sea compatible con ese carácter en particular. Haga clic en el menú de la barra de herramientas de Windows (icono como C :.) y seleccione Propiedades -> Fuente. Pruebe algunas otras fuentes para ver si muestran su personaje correctamente:
Encontré una solución elegante en MSDN
System.Console.Write('\uXXXX') //XXXX is hex Unicode for character
Este sencillo programa escribe ℃ directamente en la pantalla.
using System;
public class Test
{
public static void Main()
{
Console.Write('\u2103'); //℃ character code
}
}
Propiedad Console.OutputEncoding
http://msdn.microsoft.com/library/system.console.outputencoding(v=vs.110).aspx
Tenga en cuenta que para mostrar correctamente los caracteres Unicode en la consola se requiere lo siguiente:
Además Console.OutputEncoding = System.Text.Encoding.UTF8;
para algunos caracteres necesita instalar fuentes adicionales (es decir, chino).
En Windows 10, primero vaya a Configuración de región e idioma e instale soporte para el idioma requerido:
Después de eso, puede ir a Proportes del símbolo del sistema (o valores predeterminados si lo desea) y elegir alguna fuente que sea compatible con su idioma (como KaiTi en el caso chino):
Esto funciona para mi:
Console.OutputEncoding = System.Text.Encoding.Default;
Para mostrar algunos de los símbolos, es necesario configurar la fuente del símbolo del sistema en la consola de Lucida:
Abrir símbolo del sistema;
Haga clic derecho en la barra superior del símbolo del sistema;
Haga clic en Propiedades;
Si la fuente está configurada en Fuentes ráster, cámbiela a Lucida Console.
Console.OutputEncoding
no se puede establecer enEncoding.Unicode
(UTF-16).Encoding.UTF8
Sin embargo, es posible.