是否有显示Unicode字符的Windows命令shell?
假设我安装的字体中有适当的标志符号,是否有用于Windows XP的命令shell可以显示Unicode字符?至少有两件事应该正确显示Unicode:是否有显示Unicode字符的Windows命令shell?,unicode,powershell,Unicode,Powershell,假设我安装的字体中有适当的标志符号,是否有用于Windows XP的命令shell可以显示Unicode字符?至少有两件事应该正确显示Unicode: 目录列表。我不在乎我必须键入什么(dir、ls、get childitem等),只要名称中包含Unicode字符的文件以正确的字形显示,而不是不可打印的字符框 文本文件内容列表。再说一遍,如果是‘少’、‘多’、‘猫’、‘狗’等等,对我来说都无所谓,只要字符是打印出来的。我认识到,由于文件的字符编码,这更为复杂,因此如果必须在命令行中指定,我也可
- 目录列表。我不在乎我必须键入什么(dir、ls、get childitem等),只要名称中包含Unicode字符的文件以正确的字形显示,而不是不可打印的字符框
- 文本文件内容列表。再说一遍,如果是‘少’、‘多’、‘猫’、‘狗’等等,对我来说都无所谓,只要字符是打印出来的。我认识到,由于文件的字符编码,这更为复杂,因此如果必须在命令行中指定,我也可以这样做
- cmd.exe
- Windows PowerShell;包括多语言版本
- 赛文·巴什
有什么想法吗?这是PowerShell v1中的一个主要问题。版本2附带了一个“图形shell”来解决这个问题,这最终不是PowerShell的问题,而是Windows控制台主机(Cmd.exe也使用该主机)的问题。如果需要,您可以获取PowerShell v2的当前CTP
事实上,PowerShell v2.0已于8月初在Windows 7和Windows Server 2008 R2发布时完成并发布。此外,后端口版本(WindowsVista/2008)在前几天刚刚达到其发布候选里程碑;WindowsXP/WindowsServer2003应该很快就会出现 要获得真正的shell,请尝试PowerShell Plus。您可以选择Unicode字体并使用其他语言,不仅可以在编辑器中使用,还可以在true console中使用。试试。但要注意颜色/调色板配置。那些车有点乱。我已确认它们不起作用;它们的行为类似于cmd.exe。使用命令“chcp 65001”将代码页设置为UTF-8应有助于将文件内容正确打印到shell(使用cmd.exe)。但这对目录列表不起作用(NTFS文件名中的UTF-16编码)。要使用cmd.exe执行此操作,需要使用console属性对话框切换到Unicode TrueType字体 然后使用以下命令:
CHCP 65001
DIR > UTF8.TXT
TYPE UTF8.TXT
命令:
- 切换控制台至UTF-8(65001)
- 将DIR的输出重定向到UTF8.TXT
- 将UTF-8转储到控制台
内部似乎就是这样。唯一的缺点是默认的控制台编码是UCS-2 LE而不是UTF-8。这就是我如何在Windows 7 Pro英文版上运行的
cmd.exe
中获得中文输出的方法。我还尝试了日语、俄语和波兰语的文件名,它们似乎都显示正确。输入也似乎有效,至少当我尝试执行包含非ascii字符的dir xxx*
时是这样
cmd.exe
(和其他shell)的前端Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\Console2 command window]
"CodePage"=dword:000003a8
"FontSize"=dword:000a0000
"FontFamily"=dword:00000036
"FontWeight"=dword:00000190
"FaceName"="細明體"
"HistoryNoDup"=dword:00000000
@NimSum
,汉字旋转90度。然后我切换到NimSum
(不带@),结果显示正确。然后出于好奇,我切换到了控制台,但我仍然能看到汉字。所以我不确定你是否真的需要设置字体setup.exe安装)。MinTTY是PuTTY终端仿真器的一个分支,因此具有适当的Unicode支持,并且与其他终端仿真器的兼容性大大提高。尝试以下方法:
powershell.exe -NoExit /c "chcp.com 65001"
谁使用msysgit:
powershell.exe -NoExit /c "chcp.com 65001; sh --login -i"
不要忘记将窗口的字体更改为具有UTF-8支持的TrueType字体(“Lucida控制台”)也可以从
打开提升的命令提示符(以管理员身份运行cmd)。通过以下方式向控制台查询注册表中可用的TrueType字体:
REG query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont"
您将看到如下输出:
0 REG_SZ Lucida Console
00 REG_SZ Consolas
936 REG_SZ *新宋体
932 REG_SZ *MS ゴシック
现在我们需要添加一个TrueType字体,它支持您需要的字符,比如Courier New,我们通过在字符串名称中添加零来实现这一点,因此在本例中,下一个将是“000”:
现在我们实施UTF-8支持:
REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 65001 /f
将默认字体设置为“Courier New”:
将字体大小设置为20:
REG ADD HKCU\Console /v FontSize /t REG_DWORD /d 20 /f
如果愿意,请启用快速编辑:
REG ADD HKCU\Console /v QuickEdit /t REG_DWORD /d 1 /f
一种快速方便的方法是使用Explorer
1. Open the Explorer window.
2. Traverse to the top level of directory where you want to find.
3. On the upper right corner, there is a find field.
1.打开资源管理器窗口。
2.遍历到要查找的目录的顶层。
3.在右上角,有一个find字段。
投票赞成为这个问题提出有效的解决办法。我会接受的,除非我对更好的东西抱有希望。作为“早期阿尔法”,它要成为一个真正可用的外壳还有很长的路要走。目前的CTP3非常稳定,不幸的是,它是目前唯一一个不需要花钱的解决方案。由于这个老话题最近被推到了列表的最顶端,我用指向最新Powershell位的链接编辑了主要答案。我不明白。这个“图形外壳”在哪里?我使用的是Windows 8.1,调用Powershell似乎仍然使用1252代码页(在我的en-US笔记本电脑上)。Powershell ISE似乎是一个图形shell。它会弹出带有补全等内容的弹出窗口。根据你的建议,我试过了,但似乎没有解决我的问题。在一个目录中运行'dir',其中的文件名包括韩文字符
REG ADD HKCU\Console /v FontSize /t REG_DWORD /d 20 /f
REG ADD HKCU\Console /v QuickEdit /t REG_DWORD /d 1 /f
1. Open the Explorer window.
2. Traverse to the top level of directory where you want to find.
3. On the upper right corner, there is a find field.