Печать символов Unicode в приглашении PowerShell
Я пытаюсь настроить Mercurial, чтобы распечатать статус репозитория, в котором я сейчас работаю с PowerShell. До сих пор у меня все работает, но я хотел бы иметь возможность печатать "☿" в приглашении, когда я нахожусь в репозитории. К сожалению, похоже, что PowerShell имеет некоторые проблемы с печатью символов Unicode.
В принятом ответе для Есть ли командная оболочка Windows, которая будет отображать символы Unicode?, предлагается PowerShell v2, который поставляется с Windows 7 (который я я использую) мог бы печатать символы Юникода, но я не могу заставить его работать. Аналогично, следующий ответ использования chcp 65001
тоже не работает.
Неужели это еще недостаток в PowerShell, или я пропущу что-то очевидное?
Ответы
Ответ 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
Вам нужно