web-dev-qa-db-fra.com

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

Je me demandais s'il était possible, dans une application console, d'écrire des caractères comme en utilisant .NET. Lorsque j'essaie d'écrire ce caractère, la console affiche un point d'interrogation.

123
Sam

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

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

(MSDN link à la documentation à l’appui.)

Et voici une petite application de test de console que vous pourrez trouver pratique:

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 console ne supporte pas 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:

picture of console font edit

158
Paul Sasik

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
    }
}
8
Destiner

Console.OutputEncoding Propriété

http://msdn.Microsoft.com/library/system.console.outputencoding(v=vs.110).aspx

Notez que l'affichage avec succès de caractères Unicode sur la console nécessite les éléments suivants:

  • La console doit utiliser une police TrueType, telle que Lucida Console ou Consolas, pour afficher les caractères.
7
Pažout

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

pour certains caractères, vous devez installer des polices supplémentaires (par exemple, le chinois).

Dans Windows 10, accédez d'abord à Paramètres de région et de langue et installez la prise en charge de la langue requise:  enter image description here

Après cela, vous pouvez accéder à proportions d'invite de commande (ou par défaut si vous le souhaitez)} et choisir une police prenant en charge votre langue (comme KaiTi en chinois ):  enter image description here

Maintenant vous êtes prêt à partir:  enter image description here

0
watbywbarif