假设我安装了具有相应字形的字体,是否有一个用于Windows XP的命令shell将显示Unicode字符?至少应该正确显示Unicode的两件事:
目录列表.我不关心我必须键入什么(dir,ls,get-childitem等),只要名称中带有Unicode字符的文件带有正确的字形,而不是不可打印的字符框.
文本文件内容列表.同样,只要字符被打印,对我来说无关紧要的是"少","更多","猫","狗"等.我认识到由于文件的字符编码,这更复杂,所以如果我必须在命令行上指定那对我没问题.
这是我到目前为止所尝试的:
CMD.EXE
Windows PowerShell; 包括多语言版本.
Cygwin bash
没运气.我甚至尝试为cmd/PowerShell安装自定义字体.PowerShell和cmd.exe似乎是Unicode感知的,因为我可以将不可打印的框复制/粘贴到那里,它将粘贴到具有正确字符的其他应用程序中.Cygwin(?)似乎转换为?字符和复制/粘贴中的字符.
有任何想法吗?
要使用cmd.exe执行此操作,您需要使用控制台属性对话框切换到Unicode TrueType字体.
然后使用以下命令:
CHCP 65001 DIR > UTF8.TXT TYPE UTF8.TXT
命令:
将控制台切换到UTF-8(65001)
将DIR的输出重定向到UTF8.TXT
将UTF-8转储到控制台
字体仍然需要字体支持才能在控制台上正确显示.
I18N:Windows命令提示符下的Unicode(C++; .Net; Java)
这是PowerShell v1中的一个主要问题.版本2附带了一个"图形shell",可以解决问题,最终不是PowerShell,而是Windows控制台主机(Cmd.exe也使用).如果需要,您可以获取PowerShell v2的当前CTP.
实际上,PowerShell v2.0已经完成,并在8月初发布了Windows 7和Windows Server 2008 R2.此外,后移版本(Windows Vista/2008)在前几天达到了候选版本里程碑; Windows XP/Windows Server 2003应该很快就会出现.Linky linky.
使用命令"chcp 65001"将代码页设置为UTF-8应该可以帮助您正确地将文件内容打印到shell(使用cmd.exe).这不适用于目录列表(NTFS文件名中的UTF-16编码).
试试这个:
powershell.exe -NoExit /c "chcp.com 65001"
谁使用msysgit:
powershell.exe -NoExit /c "chcp.com 65001; sh --login -i"
不要忘记将窗口的字体更改为支持UTF-8的TrueType字体("Lucida Console")