Respostas:
É provável que sua codificação de saída esteja definida como ASCII. Tente usar isso antes de enviar a saída:
Console.OutputEncoding = System.Text.Encoding.UTF8;
( Link MSDN para documentação de suporte.)
E aqui está um pequeno aplicativo de teste de console que você pode achar ú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
Também é possível que sua escolha da fonte do console não suporte esse caractere específico. Clique no menu da barra de ferramentas do Windows (ícone como C :.) e selecione Propriedades -> Fonte. Tente outras fontes para ver se elas exibem seu personagem corretamente:
Encontrei uma solução elegante no MSDN
System.Console.Write('\uXXXX') //XXXX is hex Unicode for character
Este programa simples grava ℃ diretamente na tela.
using System;
public class Test
{
public static void Main()
{
Console.Write('\u2103'); //℃ character code
}
}
Propriedade Console.OutputEncoding
http://msdn.microsoft.com/library/system.console.outputencoding(v=vs.110).aspx
Observe que a exibição bem-sucedida de caracteres Unicode no console requer o seguinte:
Além de Console.OutputEncoding = System.Text.Encoding.UTF8;
para alguns caracteres, você precisa instalar fontes extras (por exemplo, chinês).
No Windows 10, vá primeiro para as configurações de região e idioma e instale o suporte para o idioma necessário:
Depois disso, você pode ir para Proporties de Prompt de Comando (ou Padrões, se desejar) e escolher alguma fonte que suporte seu idioma (como o KaiTi no caso chinês):
Isso funciona para mim:
Console.OutputEncoding = System.Text.Encoding.Default;
Para exibir alguns dos símbolos, é necessário definir a fonte do prompt de comando como Lucida Console:
Prompt de Comando Aberto;
Clique com o botão direito do mouse na barra superior do prompt de comando;
Clique em Propriedades;
Se a fonte estiver definida como Fontes de varredura, altere-a para Lucida Console.
Console.OutputEncoding
não pode ser definido comoEncoding.Unicode
(UTF-16).Encoding.UTF8
, no entanto, é possível.