C # Unicode-String-Ausgabe
Habe ich eine Funktion zum konvertieren einer Zeichenfolge in ein Unicode-string:
private string UnicodeString(string text)
{
return Encoding.UTF8.GetString(Encoding.ASCII.GetBytes(text));
}
Aber wenn ich mir den Aufruf dieser Funktion wird das Ausgabe-Ergebnis ist falsch. Es sieht aus wie meine Funktion funktioniert nicht.
Console.WriteLine(UnicodeString("добры дзень"))
Druck auf Konsole einfach Fragen wie: ????? ????
Gibt es eine Möglichkeit zu sagen, um die Konsole anzuzeigen, richtig?
UPDATE
Wie es aussieht ist das problem nicht in Unicode. Ich denke, vielleicht ist es die Anzeige von Fragezeichen da bin ich nicht die richtige Gebietsschema des Systems (Windows 7)?
Gibt es eine Möglichkeit, damit es funktioniert ohne änderung der locale?
InformationsquelleAutor der Frage Reg | 2011-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst ändern Sie das Ausgabe-encoding UTF8:
Nun werden Sie noch sehen Fragezeichen. Der Grund dafür ist, dass die Standard-Konsole die schriftart unterstützt keine kyrillischen Buchstaben. Ändern Sie die schriftart der Konsole:
Wenn Sie Glück haben, sollten Sie eine andere schriftart, die Unicode-Unterstützung:
Ändern Sie die schriftart, und Sie sollten in der Lage sein zu sehen, Ihr text:
Im Allgemeinen Fall, wenn Sie wollen, um alle Unicode-Zeichen zuverlässig, die Konsole ist wohl nicht das richtige für Sie. Siehe auch: C# - Konsole-Schrift (die Kommentare sind auch interessant)
InformationsquelleAutor der Antwort Kobi
Den string
text
ist bereits in Unicode. Alle internen C# strings sind Unicode. Wenn Sie es zu konvertieren in ASCII-Sie verlieren Zeichen. Das ist, warum Sie bekommen ????? ????.InformationsquelleAutor der Antwort Albin Sunnanbo
Nur tun, ganz einfach
Console.WriteLine("добры дзень");
keine Notwendigkeit für jede Konvertierung.InformationsquelleAutor der Antwort EliotVU