web-dev-qa-db-de.com

Wie schreibe ich Unicode-Zeichen auf die Konsole?

Ich habe mich gefragt, ob es in einer Konsolenanwendung möglich ist, Zeichen wie mit .NET zu schreiben. Wenn ich versuche, dieses Zeichen zu schreiben, gibt die Konsole ein Fragezeichen aus.

123
Sam

Es ist wahrscheinlich, dass Ihre Ausgabecodierung auf ASCII eingestellt ist. Versuchen Sie es damit, bevor Sie die Ausgabe senden:

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

(MSDN link zur Begleitdokumentation.)

Und hier ist eine kleine Konsolentest-App, die Sie als nützlich finden können:

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

Es ist auch möglich, dass Ihre Wahl der Konsolenschrift dieses Zeichen nicht unterstützt. Klicken Sie auf das Windows-Symbolleistenmenü (Symbol wie C:) und wählen Sie Eigenschaften -> Schriftart. Probieren Sie einige andere Schriftarten aus, um zu sehen, ob sie Ihren Charakter richtig anzeigen:

picture of console font edit

158
Paul Sasik

Ich habe eine elegante Lösung auf MSDN gefunden

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

Dieses einfache Programm schreibt ℃ direkt auf den Bildschirm.

using System;

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

Console.OutputEncoding-Eigenschaft

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

Beachten Sie, dass das erfolgreiche Anzeigen von Unicode-Zeichen für die Konsole Folgendes erfordert:

  • Die Konsole muss zur Anzeige von Zeichen eine TrueType-Schriftart wie Lucida Console oder Consolas verwenden
7
Pažout

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

für einige Zeichen müssen Sie zusätzliche Schriftarten installieren (z. B. Chinesisch).

In Windows 10 gehen Sie zuerst zu Regions- und Spracheinstellungen und installieren Sie die Unterstützung für die erforderliche Sprache:  enter image description here

Danach können Sie zu Eingabeaufforderungs-Proportien (oder Standardeinstellungen, wenn Sie möchten)} wählen und eine Schriftart auswählen, die Ihre Sprache unterstützt (z. B. KaiTi im chinesischen Fall ):  enter image description here

Jetzt können Sie loslegen:  enter image description here

0
watbywbarif