Frage

Ich bin in der Lage, das Standard-ASCII-Zeichen korrekt angezeigt werden (bis zu 127) wie „Herz“, „note“ Sie wissen, was ich meine. Ich möchte auch diejenigen anzuzeigen, dass ich zum Zeichnen von Wänden (wie U0205) verwenden kann, aber es ist nicht work..well nicht, es funktioniert, aber es sieht aus wie „?“. Jede Art und Weise, wie ich kann sie sehen? Danke.

War es hilfreich?

Lösung

Konsolenmodus Anwendungen beschränken sich auf eine 8-Bit-Codepage-Kodierung. Der Standard auf vielen Maschinen ist IBM437, die Codepage, die den alten IBM PC-Zeichensatz entspricht. Sie können durch die Zuordnung der Outputen Eigenschaft, um die Codepage ändern:

        Console.OutputEncoding = Encoding.UTF8;

Aber jetzt haben Sie in der Regel ein Problem mit der Schriftart. Konsolen Standard zum Terminal Schriftart, ein alten Gerät Schriftart, die Glyphen in der richtigen Stelle hatte den IBM PC-Zeichensatz zu erzeugen. Es gibt nicht viele Schriftarten zur Verfügung, die die richtigen Glyphen erzeugen kann, die die Unicode-Codepunkte entsprechen. Consolas ist darüber, auf Vista und Win7.

Aber das ist nicht das, was Sie fragen, ich glaube, ich bin zu raten, dass Sie tatsächlich über die alten Rahmen zeichnen Zeichen fragen. Das Arbeiten ohne Bastelei mit den Konsoleneinstellungen, müssen Sie nur noch die richtigen Unicode-Zeichen verwenden. Hier ist ein Beispiel, das sollte ein copy-and-paste, um zu überleben:

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

Um diese Zeichen zu finden, verwenden Sie die Windows-charmap.exe Applet. Klicken Sie auf die Schaltfläche „Erweitert Ansicht“ Checkbox und geben Sie „Box“ in der „Suche nach“ Textfeld füllt das Gitter mit der Box Zeichen zeichnen. Die erste verwendbare Version, die die Konsole richtig konvertiert ist ‚\ u250c‘.

Andere Tipps

The problem appears to be with the Console application rather than with your program. The standard console in windows (cmd.exe) appears not to support Unicode properly - for example, try copying the string below and pasting directly into a cmd.exe window:

Fußball Ö ü

PowerShell seems to suffer from the same problem as well.

One possible solution to your problem is to create a dedicated window/form to be used as an "output console" instead of using the actual console through which the application was executed.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top