137 votes

Comment écrire les caractères unicode à la console?

Je me demandais si il était possible, dans une application console, pour écrire des caractères comme "° c" à l'aide .NET? Quand j'essaye d'écrire ce personnage, la console affiche un point d'interrogation.

Ceci est mon premier post, donc si j'ai oublié quelque chose, dites-le moi. Merci à l'avance.

184voto

Paul Sasik Points 37766

Il est probable que votre encodage en sortie est la valeur ASCII. Essayez d'utiliser ce avant l'envoi de la sortie:

Console.OutputEncoding = System.Text.Encoding.Unicode

et voici une petite console de test app, vous pouvez trouver à portée de main:

imports Microsoft.VisualBasic
imports System

public module MyModule
    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 pour la Console ne prend pas en charge ce personnage. Cliquez sur la Barre d'outils de Windows Menu (icône comme C:.) et sélectionnez Propriétés -> Police. Essayer d'autres polices de caractères pour voir si ils affichent votre personnage correctement:

picture of console font edit

8voto

Destiner Points 13

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

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

Ce programme simple écrit ℃ à droite sur l'écran.

using System;

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

7voto

Pažout Points 61

Console.OutputEncoding Propriété

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

Noter que le succès de l'affichage des caractères Unicode à la console requiert les éléments suivants:

  • La console doit utiliser une police TrueType, comme Lucida Console ou Consolas, pour afficher des caractères

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X