Comment écrire des caractères Unicode sur la console ?

Comment écrire des caractères Unicode sur la console ?

Il est probable que votre encodage de sortie soit défini sur ASCII. Essayez d'utiliser ceci avant d'envoyer la sortie :

Console.OutputEncoding = System.Text.Encoding.UTF8;

(Lien MSDN vers la documentation de support.)

Et voici une petite application de test de console qui pourrait vous être 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

Il est également possible que votre choix de police de la console ne prenne pas en charge ce caractère particulier. Cliquez sur le menu de la barre d'outils Windows (icône comme C :.) et sélectionnez Propriétés -> Police. Essayez d'autres polices pour voir si elles affichent correctement votre personnage :


J'ai trouvé une solution élégante sur MSDN

System.Console.Write('\uXXXX') //XXXX is hex Unicode for character

Ce programme simple écrit ℃ directement sur l'écran.

using System;

public class Test
{
    public static void Main()
    {
        Console.Write('\u2103'); //℃ character code
    }
}

Propriété Console.OutputEncoding

https://docs.microsoft.com/en-us/dotnet/api/system.console.outputencoding