假设我安装了具有相应字形的字体,是否有一个用于Windows XP的命令shell会显示Unicode字符?至少应该有两件事应该正确显示Unicode:
这是我到目前为止所尝试的内容:
没有运气。我甚至试过安装custom fonts for cmd/PowerShell。 PowerShell和cmd.exe似乎是Unicode感知的,因为我可以将不可打印的框复制/粘贴到那里,它将粘贴到具有正确字符的其他应用程序中。 Cygwin(?)似乎转换为?字符和复制/粘贴中的字符。
有什么想法吗?
答案 0 :(得分:40)
要使用 cmd.exe 执行此操作,您需要使用控制台属性对话框切换到Unicode TrueType字体。
然后使用以下命令:
CHCP 65001
DIR > UTF8.TXT
TYPE UTF8.TXT
命令:
字体仍然需要字体支持才能在控制台上正确显示。
I18N: Unicode at the Windows command prompt (C++; .Net; Java)
答案 1 :(得分:18)
这是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
答案 2 :(得分:6)
使用命令“chcp 65001”将代码页设置为UTF-8可以帮助您正确地将文件内容打印到shell(使用cmd.exe)。但这不适用于目录列表(NTFS文件名中的UTF-16编码)。
答案 3 :(得分:5)
试试这个:
powershell.exe -NoExit /c "chcp.com 65001"
谁使用msysgit:
powershell.exe -NoExit /c "chcp.com 65001; sh --login -i"
不要忘记将窗口的字体更改为支持UTF-8的TrueType字体(“Lucida Console”)
答案 4 :(得分:2)
要获得真正的shell,请尝试使用PowerShell Plus。您可以选择Unicode字体并使用其他语言,不仅可以在编辑器中使用,还可以在真正的控制台中使用。
答案 5 :(得分:2)
这是我在Windows 7 Pro英文版上运行cmd.exe
的中文输出的方法。我还尝试使用日语,俄语和波兰语的文件名,它们似乎都正确显示。输入似乎也有效,至少当我尝试使用包含非ascii字符的dir xxx*
时。
安装console2,这是cmd.exe
(及其他炮弹)的前端
安装完成后,请按these instructions
删除注册表中的密钥HKEY_CURRENT_USER\Console\Console2 command window
。
将以下数据导入Windows注册表:
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
(没有@),它正确地出来了。然后出于好奇我切换到Consola
然后我仍然可以看到汉字。所以我不确定你是否真的要设置字体。
答案 6 :(得分:1)
试试Console 2。但要注意颜色/调色板配置。那些有点儿马车。我确认他们不工作;它们的行为类似于cmd.exe。
答案 7 :(得分:0)
Console2似乎就是这么做的。唯一的缺点是默认的控制台编码是UCS-2 LE而不是UTF-8。
答案 8 :(得分:0)
从November 2011开始,MinTTY现在是Cygwin的默认终端模拟器(由setup.exe
安装)。 MinTTY是PuTTY终端仿真器的一个分支,因此可以运行适当的Unicode支持,并且与其他终端仿真器的兼容性大大提高。
答案 9 :(得分:0)
打开提升的命令提示符(以管理员身份运行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 ゴシック
现在我们需要添加一个支持Courier New所需字符的TrueType字体,我们通过在字符串名称中添加零来实现这一点,所以在这种情况下,下一个将是“000”:
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont" /v 000 /t REG_SZ /d "Courier New"
现在我们实施UTF-8支持:
REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 65001 /f
将默认字体设置为“Courier New”:
REG ADD HKCU\Console /v FaceName /t REG_SZ /d "Courier New" /f
将字体大小设置为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
答案 10 :(得分:-1)
Open/run cmd.exe
Click on the icon at the top-left corner
Select properties
Then "Font" bar
Select "Lucida Console" and OK.
Write Chcp 10000 at the prompt
Finally dir /b
答案 11 :(得分:-3)
快速便捷的方法是在资源管理器上。
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.