Question

Je suis en mesure d'afficher correctement les symboles ASCII standard (jusqu'à 127) comme « coeur », « note » vous savez ce que je veux dire. Je voudrais également afficher ceux que je peux utiliser pour le dessin des murs (comme U0205), mais il n'a pas d'work..well, il fonctionne, mais il semble que « ? ». De toute façon comment je peux les afficher? Merci.

Était-ce utile?

La solution

applications du mode de console sont limitées à un codage de page de code de 8 bits. La valeur par défaut sur de nombreuses machines est IBM437, la page de code qui correspond à l'ancien jeu de caractères IBM PC. Vous pouvez modifier la page de code en attribuant la propriété OutputEncoding:

        Console.OutputEncoding = Encoding.UTF8;

Mais maintenant, vous avez généralement un problème avec la police. Consoles par défaut à la police Terminal, une ancienne police de périphérique qui avait Glyphes au bon endroit pour produire le jeu de caractères IBM PC. Il n'y a pas beaucoup de polices disponibles qui peuvent produire correctement les glyphes qui correspondent aux points de code Unicode. Consolas est à ce sujet, disponible sur Vista et Win7.

Mais ce ne est pas ce que vous demandez, je pense, je devine que vous demandez en fait sur les anciens personnages de dessin de la boîte. Cela fonctionne sans bricoler avec les paramètres de la console, il vous suffit d'utiliser les bons caractères Unicode. Voici un exemple qui devrait survivre à une copie et coller-:

class Program {
    static void Main(string[] args) {
        Console.WriteLine("╒════════╕");
        Console.WriteLine("│ Hello  │");
        Console.WriteLine("│ world  │");
        Console.WriteLine("╘════════╛");
        Console.ReadLine();
    }
}

Pour ces caractères, utilisez l'applet charmap.exe de Windows. Cliquez sur la case à cocher et tapez « case » dans la zone de texte « Chercher » « Vue avancée », la grille se remplira avec les personnages de dessin boîte. La première utilisable qui correctement la conversion à la console est « \ u250c ».

Autres conseils

Le problème semble être l'application de la console plutôt que votre programme. La console standard dans Windows (cmd.exe) ne semble pas soutenir Unicode correctement - par exemple, essayez de copier la chaîne ci-dessous et coller directement dans une fenêtre cmd.exe:

  

Fußball Uo

PowerShell semble souffrir du même problème ainsi.

Une solution possible à votre problème est de créer une fenêtre / formulaire dédié à être utilisé comme une « console de sortie » au lieu d'utiliser la console réelle à travers laquelle la demande a été exécutée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top