Antworten:
Es ist wahrscheinlich, dass Ihre Ausgabecodierung auf ASCII eingestellt ist. Versuchen Sie dies, bevor Sie eine Ausgabe senden:
Console.OutputEncoding = System.Text.Encoding.UTF8;
(MSDN- Link zur unterstützenden Dokumentation.)
Und hier ist eine kleine Konsolentest-App, die Sie vielleicht nützlich finden:
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 Konsolenschriftart dieses bestimmte 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 festzustellen, ob sie Ihren Charakter richtig anzeigen:
Ich habe auf MSDN eine elegante Lösung 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
}
}
Console.OutputEncoding-Eigenschaft
http://msdn.microsoft.com/library/system.console.outputencoding(v=vs.110).aspx
Beachten Sie, dass für die erfolgreiche Anzeige von Unicode-Zeichen auf der Konsole Folgendes erforderlich ist:
Außerdem Console.OutputEncoding = System.Text.Encoding.UTF8;
Für einige Zeichen müssen Sie zusätzliche Schriftarten installieren (z. B. Chinesisch).
In Windows - 10 gehen zuerst Region & Spracheinstellungen und installieren Sie die Unterstützung für gewünschte Sprache:
Danach können Sie zu Eingabeaufforderungsproportionen (oder Standardeinstellungen, wenn Sie möchten ) gehen und eine Schriftart auswählen, die Ihre Sprache unterstützt (wie KaiTi im chinesischen Fall):
Das funktioniert bei mir:
Console.OutputEncoding = System.Text.Encoding.Default;
Um einige der Symbole anzuzeigen, muss die Schriftart der Eingabeaufforderung auf Lucida Console eingestellt werden:
Eingabeaufforderung öffnen;
Klicken Sie mit der rechten Maustaste auf die obere Leiste der Eingabeaufforderung.
Klicken Sie auf Eigenschaften.
Wenn die Schriftart auf Rasterschriftarten eingestellt ist, ändern Sie sie in Lucida Console.
Console.OutputEncoding
kann nicht aufEncoding.Unicode
(UTF-16) gesetzt werden.Encoding.UTF8
ist jedoch möglich.