Risposte:
È probabile che la codifica di output sia impostata su ASCII. Prova a usarlo prima di inviare l'output:
Console.OutputEncoding = System.Text.Encoding.UTF8;
( Collegamento MSDN alla documentazione di supporto.)
Ed ecco una piccola app di test della console che potresti trovare utile:
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
È anche possibile che la scelta del tipo di carattere Console non supporti quel particolare carattere. Fai clic sul menu della barra degli strumenti di Windows (icona come C :.) e seleziona Proprietà -> Carattere. Prova alcuni altri caratteri per vedere se visualizzano correttamente il tuo personaggio:
Ho trovato una soluzione elegante su MSDN
System.Console.Write('\uXXXX') //XXXX is hex Unicode for character
Questo semplice programma scrive ℃ direttamente sullo schermo.
using System;
public class Test
{
public static void Main()
{
Console.Write('\u2103'); //℃ character code
}
}
Proprietà Console.OutputEncoding
http://msdn.microsoft.com/library/system.console.outputencoding(v=vs.110).aspx
La visualizzazione corretta dei caratteri Unicode sulla console richiede quanto segue:
Oltretutto Console.OutputEncoding = System.Text.Encoding.UTF8;
per alcuni personaggi è necessario installare caratteri aggiuntivi (ad es. cinese).
In Windows 10 vai prima alle impostazioni di Regione e lingua e installa il supporto per la lingua richiesta:
Dopodiché puoi andare su Proporzioni prompt dei comandi (o Predefiniti se vuoi) e scegliere un font che supporti la tua lingua (come KaiTi nel caso cinese):
Questo funziona per me:
Console.OutputEncoding = System.Text.Encoding.Default;
Per visualizzare alcuni dei simboli, è necessario impostare il carattere del Prompt dei comandi su Lucida Console:
Apri prompt dei comandi;
Fare clic con il tasto destro sulla barra superiore del Prompt dei comandi;
Clicca Proprietà;
Se il carattere è impostato su Caratteri raster, cambiarlo in Lucida Console.
Console.OutputEncoding
non può essere impostato suEncoding.Unicode
(UTF-16).Encoding.UTF8
, tuttavia, è possibile.