Мне было интересно, можно ли в консольном приложении писать символы, например, ℃
используя .NET. Когда я пытаюсь написать этот символ, консоль выводит знак вопроса.
150
Мне было интересно, можно ли в консольном приложении писать символы, например, ℃
используя .NET. Когда я пытаюсь написать этот символ, консоль выводит знак вопроса.
Вполне вероятно, что ваша выходная кодировка установлена в ASCII. Попробуйте использовать это перед отправкой вывода:
Console.OutputEncoding = System.Text.Encoding.UTF8;
(MSDN ссылка на сопроводительную документацию.)
А вот небольшое консольное тестовое приложение, которое вам может пригодиться:
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
Также возможно, что выбранный вами шрифт консоли не поддерживает этот конкретный символ. Нажмите на меню панели инструментов Windows (значок как C :.) и выберите Свойства -> Шрифт. Попробуйте другие шрифты, чтобы увидеть, правильно ли они отображают ваш персонаж:
Console.OutputEncoding
нельзя установить наEncoding.Unicode
(UTF-16).Encoding.UTF8
Однако это возможно.Я нашел элегантное решение на MSDN
Эта простая программа пишет ℃ прямо на экране.
источник
Свойство Console.OutputEncoding
http://msdn.microsoft.com/library/system.console.outputencoding(v=vs.110).aspx
Обратите внимание, что для успешного отображения символов Unicode на консоли необходимо следующее:
источник
Кроме
Console.OutputEncoding = System.Text.Encoding.UTF8;
для некоторых символов вам нужно установить дополнительные шрифты (например, китайский).
В Windows 10 сначала зайдите в настройки языка и региона и установите поддержку для требуемого языка:
После этого вы можете перейти к разделу «Командная строка» (или «По умолчанию», если хотите) и выбрать шрифт, который поддерживает ваш язык (например, KaiTi в китайском случае):
Теперь вы готовы пойти:
источник
Это работает для меня:
Console.OutputEncoding = System.Text.Encoding.Default;
Чтобы отобразить некоторые символы, необходимо установить шрифт командной строки в Lucida Console:
Открыть командную строку;
Щелкните правой кнопкой мыши на верхней панели командной строки;
Нажмите Свойства;
Если для шрифта установлено значение Растровые шрифты, измените его на Lucida Console.
источник