Console.write () - Дисплей Расширенный ASCII Chars?
-
08-10-2019 - |
Вопрос
Я могу правильно отобразить стандартные символы ASCII (до 127), как «сердце», «Примечание. Вы знаете, что я имею в виду. Я хотел бы также отображать, что я могу использовать для рисования стен (например, U0205), но он не работает .. Нэвус, он работает, но он выглядит как «?». Любой способ, как я могу их показать? Спасибо.
Решение
Приложения Mode Console ограничены 8-битным кодировкой страницы кода. По умолчанию на многих машинах IBM437, кодовая страница, которая соответствует старому набору символов IBM PC. Вы можете изменить кодовую страницу, назначая свойство OpdedEncoding:
Console.OutputEncoding = Encoding.UTF8;
Но теперь у вас обычно проблема с шрифтом. Консоли по умолчанию для шрифта клеммы, шрифт старого устройства, который имел Glyphs в нужном месте для создания набора символов IBM PC. Нет много доступных шрифтов, которые могут создавать надлежащие глифы, которые соответствуют кодом Unicode. Консолас об этом, доступно на Vista и Win7.
Но это не то, что вы спрашиваете, я думаю, я предполагаю, что вы на самом деле спрашиваете о старых персонажах рисования коробки. Это работает без какого-либо Tinkering с настройками консоли, вам просто нужно использовать правильные символы Unicode. Вот пример, который должен пережить копию и пасте:
class Program {
static void Main(string[] args) {
Console.WriteLine("╒════════╕");
Console.WriteLine("│ Hello │");
Console.WriteLine("│ world │");
Console.WriteLine("╘════════╛");
Console.ReadLine();
}
}
Чтобы найти эти символы, используйте апплет Windows Charmap.exe. Щелкните флажок «Расширенный просмотр» и введите «Box» в текстовом поле «Поиск», сетка будет заполняться символами рисования коробки. Первый используемый, который будет правильно преобразован в консоль, - это « u250c».
Другие советы
Проблема, кажется, с приложением консоли, а не с вашей программой. Стандартная консоль в Windows (cmd.exe), кажется, не поддерживает Unicode правильно - например, попробуйте копировать строку ниже и вставление непосредственно в окно CMD.EXE:
Fußball Ö ü.
PowerShell, кажется, страдает от такой же проблемы.
Одним из возможных решений вашей проблемы состоит в том, чтобы создать выделенное окно / форму, которая будет использоваться в качестве «выходной консоли» вместо использования фактической консоли, через которую было выполнено приложение.