Мне было интересно, можно ли в консольном приложении писать символы типа ℃
с помощью .NET. Когда я пытаюсь записать этот символ, консоль выводит знак вопроса.
Как написать символы Unicode на консоль?
Ответ 1
Вероятно, для вашей выходной кодировки установлено значение ASCII. Попробуйте использовать это перед отправкой вывода:
Console.OutputEncoding = System.Text.Encoding.UTF8;
(MSDN ссылка в подтверждающую документацию.)
И вот небольшое консольное тестовое приложение, которое вам может пригодиться:
С#
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:.) и выберите "Свойства" → "Шрифт". Попробуйте другие шрифты, чтобы увидеть, правильно ли они отображают ваш персонаж:
Ответ 2
Я нашел несколько элегантных решений на MSDN
System.Console.Write('\uXXXX') //XXXX is hex Unicode for character
Эта простая программа записывает ℃ прямо на экран.
using System;
public class Test
{
public static void Main()
{
Console.Write('\u2103'); //℃ character code
}
}
Ответ 3
Свойство Console.OutputEncoding
http://msdn.microsoft.com/library/system.console.outputencoding(v = vs .110).aspx
Обратите внимание, что для успешного отображения символов Unicode на консоли требуется следующее:
- Консоль должна использовать шрифт TrueType, такой как Lucida Console или Consolas, для отображения символов
Ответ 4
Помимо Console.OutputEncoding = System.Text.Encoding.UTF8;
для некоторых символов вам нужно установить дополнительные шрифты (например, китайский).
В Windows 10 сначала перейдите в " Регион и настройки языка" и установите поддержку для требуемого языка:
После этого вы можете перейти к разделу "Командная строка" (или "По умолчанию", если хотите) и выбрать какой-нибудь шрифт, который поддерживает ваш язык (например, KaiTi в китайском случае):