Подтвердить что ты не робот

Печать символов Unicode в приглашении PowerShell

Я пытаюсь настроить Mercurial, чтобы распечатать статус репозитория, в котором я сейчас работаю с PowerShell. До сих пор у меня все работает, но я хотел бы иметь возможность печатать "☿" в приглашении, когда я нахожусь в репозитории. К сожалению, похоже, что PowerShell имеет некоторые проблемы с печатью символов Unicode.

В принятом ответе для Есть ли командная оболочка Windows, которая будет отображать символы Unicode?, предлагается PowerShell v2, который поставляется с Windows 7 (который я я использую) мог бы печатать символы Юникода, но я не могу заставить его работать. Аналогично, следующий ответ использования chcp 65001 тоже не работает.

Неужели это еще недостаток в PowerShell, или я пропущу что-то очевидное?

4b9b3361

Ответ 1

Это не дефицит PowerShell. Это недостаток в подсистеме консоли Windows, которую использует PowerShell.exe. Консольная подсистема не поддерживает Юникод, а скорее кодовые страницы, которые относятся к дням DOS. Исправление PowerShell V2 предоставляется через интегрированную среду сценариев PowerShell или PowerShell_ISE.exe. Это графическое приложение, основанное на WPF, которое может легко обрабатывать символы Unicode.

В теории вы можете изменить кодовую страницу с помощью chcp или

[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding(850)

чтобы отображать разные символы, но мне не повезло с этим. Вам также необходимо найти кодовую страницу, содержащую символ, который вы хотите отобразить.

Ответ 2

Здесь печатает полу-штраф. Консола не имеет глифа для этого символа, поэтому все, что я вижу в окне консоли, является глифом замены. Но PowerShell принимает и печатает его просто отлично, как вы можете видеть при копировании в него.

Теперь, если вы установили окно консоли на растровые шрифты, история немного отличается, но PowerShell, к счастью, имеет нормальные значения по умолчанию.

Ответ 3

Вы не можете использовать консоль PowerShell (то есть Windows) по умолчанию. Однако, если вы используете PowerShell ISE (который предоставляет свою собственную консоль), он будет работать. Я не уверен, что это будет отвечать вашим потребностям.

Ответ 4

Deja Vu Sans Mono работает в cmd и имеет этот символ, и поэтому он также работает в PowerShell.

Введите описание изображения здесь

Введите описание изображения здесь

Кстати, я предлагаю также установить Droid Sans Mono и Courier New в командной строке. Они также будут доступны в PowerShell. Существует не так много шрифтов с разнесением шрифтов, поддерживаемых cmd. Но это три: Дежа Санс Моно, Дроид Санс Моно и Курьер Нью.

Ответ 5

Вам нужно

  • установите monospace font в вашей системе, которая содержит ваш глиф (возможно, используйте карту символов, чтобы найти подходящую и т.д.). и затем
  • установите его как консольный шрифт, как описано здесь: http://www.watchingthenet.com/how-to-add-and-change-fonts-in-windows-command-prompt.html