将Unicode字符打印到PowerShell提示符

tgh*_*ghw 25 unicode powershell mercurial windows-7

我正在尝试设置Mercurial以打印出我目前使用PowerShell的存储库的状态.到目前为止,我已经完成了所有工作,但是当我在存储库中时,我希望能够在提示符下打印"☿".不幸的是,PowerShell似乎在打印Unicode字符时遇到了一些问题.

在接受的答案中是否存在将显示Unicode字符的Windows命令shell?建议随Windows 7(我正在使用)附带的PowerShell v2能够打印Unicode字符,但我似乎无法让它工作.同样,下一个使用的答案chcp 65001也不起作用.

这仍然是PowerShell中的缺陷,还是我错过了一些明显的东西?

Kei*_*ill 24

这不是PowerShell的缺陷.PowerShell.exe使用的Windows控制台子系统是一个缺陷.控制台子系统不支持Unicode,而是代码页,而不是可以追溯到DOS时代.PowerShell V2修复程序通过PowerShell集成脚本环境或PowerShell_ISE.exe提供.这是一个基于WPF的图形应用程序,可以轻松处理Unicode字符.

从理论上讲,您可以使用chcp或更改代码页

[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding(850)
Run Code Online (Sandbox Code Playgroud)

显示不同的字符,但我没有太多运气.您还需要找到包含要显示的字符的代码页.

  • 控制台支持Unicode,只有很少的渲染支持.没有字体替换,没有复杂的脚本渲染等等.好吧,使用Raster字体你回到DOS时代,但PowerShell幸运地使用TrueType字体作为默认字体. (8认同)

Joe*_*oey 7

这里打印半精.Consolas没有该字符的字形,因此我在控制台窗口中看到的只是替换字形.但PowerShell接受并打印它就好了,正如您在复制粘贴时所看到的那样.

现在,如果你已经将控制台窗口设置为光栅字体,那么故事就会有所不同,但PowerShell幸运的是默认情况.


zda*_*dan 6

您无法使用默认的PowerShell(即Windows)控制台.但是,如果您使用PowerShell ISE(提供自己的控制台),它将起作用.我不确定这是否能满足您的需求.