Odpowiedzi:
Prawdopodobnie kodowanie wyjściowe jest ustawione na ASCII. Spróbuj użyć tego przed wysłaniem wyniku:
Console.OutputEncoding = System.Text.Encoding.UTF8;
( Łącze MSDN do dokumentacji pomocniczej).
A oto mała aplikacja do testowania konsoli, która może Ci się przydać:
DO#
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
Możliwe jest również, że wybrana czcionka Console nie obsługuje tego konkretnego znaku. Kliknij menu paska narzędzi systemu Windows (ikona taka jak C :.) i wybierz Właściwości -> Czcionka. Wypróbuj inne czcionki, aby sprawdzić, czy poprawnie wyświetlają Twój znak:
Znalazłem eleganckie rozwiązanie w MSDN
System.Console.Write('\uXXXX') //XXXX is hex Unicode for character
Ten prosty program zapisuje ℃ bezpośrednio na ekranie.
using System;
public class Test
{
public static void Main()
{
Console.Write('\u2103'); //℃ character code
}
}
Console.OutputEncoding Właściwość
http://msdn.microsoft.com/library/system.console.outputencoding(v=vs.110).aspx
Zwróć uwagę, że pomyślne wyświetlanie znaków Unicode na konsoli wymaga następujących elementów:
Oprócz Console.OutputEncoding = System.Text.Encoding.UTF8;
w przypadku niektórych znaków należy zainstalować dodatkowe czcionki (np. chińskie).
W systemie Windows 10 najpierw przejdź do Ustawienia regionu i języka i zainstaluj obsługę wymaganego języka:
Następnie możesz przejść do opcji Proporcje wiersza polecenia (lub Domyślne, jeśli chcesz) i wybrać czcionkę obsługującą Twój język (na przykład KaiTi w przypadku chińskim):
To działa dla mnie:
Console.OutputEncoding = System.Text.Encoding.Default;
Aby wyświetlić niektóre symbole, należy ustawić czcionkę wiersza polecenia na Lucida Console:
Otwórz wiersz polecenia;
Kliknij prawym przyciskiem myszy górny pasek wiersza polecenia;
Kliknij Właściwości;
Jeśli czcionka jest ustawiona na Czcionki rastrowe, zmień ją na Lucida Console.
Console.OutputEncoding
nie można ustawić naEncoding.Unicode
(UTF-16).Encoding.UTF8
jest jednak możliwe.