Imprimir caracteres Unicode en el indicador de PowerShell

Estoy intentando configurar Mercurial para que imprima el estado del repository en el que me encuentro actualmente con PowerShell. Hasta ahora, tengo todo funcionando, pero me gustaría poder imprimir ‘☿’ cuando se encuentre en un repository. Desafortunadamente, parece que PowerShell tiene algunos problemas con la impresión de caracteres Unicode.

En la respuesta aceptada para ¿Hay un shell de comandos de Windows que muestre caracteres Unicode? se sugiere que PowerShell v2, que venía con Windows 7 (que estoy usando), podría imprimir caracteres Unicode, pero parece que no puedo hacerlo funcionar. Del mismo modo, la siguiente respuesta al uso de chcp 65001 tampoco funciona.

¿Sigue siendo una deficiencia en PowerShell o me falta algo obvio?

Esta no es una deficiencia de PowerShell. Es una deficiencia con el subsistema de la consola de Windows que utiliza PowerShell.exe. El subsistema de la consola no admite Unicode, sino páginas de códigos que datan de los días de DOS. El arreglo de PowerShell V2 se proporciona a través del entorno de scripting integrado de PowerShell o PowerShell_ISE.exe. Esta es una aplicación gráfica basada en WPF que puede manejar fácilmente caracteres Unicode.

En teoría, podría cambiar la página de códigos usando chcp o

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

para mostrar diferentes personajes, pero no he tenido mucha suerte con esto. También necesitaría encontrar una página de códigos que contenga el personaje que desea mostrar.

Imprime semi-fino aquí. Consolas no tiene un glifo para ese personaje, por lo que todo lo que veo en la ventana de la consola es un glifo de reemplazo. Pero PowerShell acepta e imprime muy bien, como puede ver al copiar y pegar.

Ahora, si ha configurado la ventana de la consola como fonts ráster, entonces la historia es un poco diferente, pero por suerte, PowerShell tiene valores predeterminados sanos.

No puede usar la consola predeterminada de PowerShell (es decir, Windows). Sin embargo, si usa PowerShell ISE (que proporciona su propia consola), funcionará. Sin embargo, no estoy seguro si esto satisfará tus necesidades.

Deja Vu Sans Mono funciona en cmd y tiene ese personaje, por lo que también funciona en PowerShell.

Ingrese la descripción de la imagen aquí

Ingrese la descripción de la imagen aquí

Por cierto, sugiero también instalar Droid Sans Mono y Courier New en el símbolo del sistema. Luego estarán disponibles en PowerShell también. No hay muchas fonts monoespaciadas que cmd admita. Pero esos son tres, Deja Sans Mono, Droid Sans Mono y Courier New.

Necesitas

  1. instale una monospace font en su sistema, que contenga su glifo (posiblemente use el Mapa de caracteres para encontrar uno adecuado, etc.) y luego
  2. establézcalo como una fuente de consola, como se describe aquí: http://www.watchingthenet.com/how-to-add-and-change-fonts-in-windows-command-prompt.html