Windows 7 如何使用包含俄文或中文字符的文件保存目录列表(Windows7)

Windows 7 如何使用包含俄文或中文字符的文件保存目录列表(Windows7),windows-7,unicode,batch-file,dir,directory-listing,Windows 7,Unicode,Batch File,Dir,Directory Listing,我需要不时从我获得的CD中列出文件列表。这些文件的名称通常包含其他书写系统中的字符,如西里尔语俄语(Бббббббббб.doc)或简体/繁体中文(孟子譯注.pdf)。我的计算机(在Windows 7下运行,波兰语)显示正确的文件名,打开文件,将文件保存在其他位置,让各种软件编辑文件等。然而,当我制作目录列表(使用dir命令)时,我总是获得问号和其他奇怪的字符,而不是其他字符(中文、俄文)字符-默认情况下dir命令的输出似乎是用ANSI编写的,而不是Unicode/UTF8 例如: 02.03.

我需要不时从我获得的CD中列出文件列表。这些文件的名称通常包含其他书写系统中的字符,如西里尔语俄语(Бббббббббб.doc)或简体/繁体中文(孟子譯注.pdf)。我的计算机(在Windows 7下运行,波兰语)显示正确的文件名,打开文件,将文件保存在其他位置,让各种软件编辑文件等。然而,当我制作目录列表(使用dir命令)时,我总是获得问号和其他奇怪的字符,而不是其他字符(中文、俄文)字符-默认情况下dir命令的输出似乎是用ANSI编写的,而不是Unicode/UTF8

例如:

02.03.09 21:13 15˙584˙500 ??????(??????).pdf = these three files were in Chinese 02.03.09 03:11 18˙638˙982 ????(???).pdf 24.03.08 17:25 61˙141˙454 ???®????Ż(???).pdf 18.03.13 16:00 1˙088 ????.txt = this file's name was in Russian 02.03.09 21:20 26˙083˙641 Transformations-of-Ming.pdf 02.03.09 21:13这三个文件是中文的 02.03.09 03:11 18˙638˙982???.pdf 24.03.08 17:25 61˙141˙454(?).pdf 18.03.13 16:00 1˙088???.txt=此文件的名称为俄语 02.03.09 21:20 26˙083˙641-of-Ming.pdf (通过Windows右键单击上下文菜单“打印目录列表”获得)

我曾尝试在www上搜索关于这个问题的各种建议,但所提供的解决方案都没有解决我的问题——或者,我发现(似乎过时)的答案是,这个问题暂时无法在各种环境下解决。也许有些东西已经改变了-也许有一个解决方案,在Windows注册表中改变了一些东西之后?或者,如果没有简单的批量编程解决方案——也许有一些现成的软件可以下载(免费或购买)来解决我的问题

我不熟悉Java或php编程,也不知道如何处理Ruby(这里有类似的问题,但仅限于这些环境)。我可以说我对MS-DOS批处理编程一窍不通——从1980年代末到1990年代中期,我在批处理编程方面表现非常出色,甚至在复杂的WordPerfect 5.1中也表现出色,用于DOS宏命令编辑/创建,以及其他类型的字符串编程——也许我太老了(请不要问我多大了)学习高级面向对象编程(我从来都不是程序员,只是一个电脑迷,但在Windows98之后我不得不放弃)


感谢您的建议-我将尝试所有建议(如果有)。

首先,您需要一个支持外来字符的真字型字体(TTF)。安装字体:

  • 在标题栏上单击鼠标右键
  • 选择属性/字体
  • 如果您的字体不在列表中,则必须先将其添加到注册表中,然后使用注册表项
    HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont\

安装字体后,控制台将显示此字体支持的所有外来字符。像
dir
或重定向到文件
dir>dir.txt
这样的命令也可以工作。无需通过设置chcp 65001来更改代码页,为我解决了问题。
问题出在错误的代码页上,至少在我的情况下是这样。

使用Windows'95,运行文件管理器(think=that,与使用的+Windows 3.1相同),它位于Windows文件夹中,然后转到更改字体的选项,并选择西里尔字母1。现在我可以看到文件的俄文名称。
Windows XP、@DOS promp使用CHCP 866。

命令提示符无法正确显示开箱即用的Unicode字符。请放心,您的应用程序工作正常。请参阅:@endro-我已经看到了,检查了所有可能的代码页(最初我有852个,但即使将其更改为西里尔语特定的cp(855、860、1251)或Unicode(65001),也不会改变俄语的情况,更不用说韩语了。尝试UTF16小或大端cp(1201或1200-从中获取的数字)-导致错误消息“错误代码页”。我应该使用哪个cp?可能我需要将其永久更改为使用它启动,因为“在分配新代码页之前启动的程序(Cmd.exe除外)使用原始代码页”但dir是cmd。exe@CodyGray-我不确定我是否明白你的意思。你指的是哪个应用程序-cmd.exe?它是运行“dir”批处理命令的应用程序,也是我唯一遇到问题的应用程序。通过“正确工作”,你就理解了“无法正确显示开箱即用的Unicode字符”,对吗?你是说这个问题没有任何解决方案?控制台运行在一个旧的OEM代码页中,它将无法显示这些标志符号。唯一的快照是“CHCP 65001”切换到utf-8并选择另一种字体,如Console或Lucinda。中文仍然会是一个问题,这些字体没有相应的字形。Windows资源管理器当然不会有这个问题,建议使用。谢谢你的建议。我之所以更改cp,是因为你已经指示我,而且由于我的DOS经验,它似乎符合逻辑。我我已经检查过,我在cmd控制台中安装了Lucida Console和Lucidas作为两种ttf字体。它们都有西里尔字母,但是显示和导出都不顺利,dir>dir.txt(都有问号,而不是bukvy)。不知道为什么。我添加了第三种字体DejaVue Sans Mono,如的详细描述,它也有西里尔字母,但没有帮助。我不知道使用哪种ttf字体,我的计算机上有数百种。您使用了哪种字体?我读过“命令窗口中可用字体的必要条件”()我在添加亚洲字体之前就停了下来(之前要检查的细节太多了),但我对西里尔文的经验让我怀疑它是否会起作用。西里尔文、中文和其他字符的显示(就像收到垃圾邮件的文件一样——日文、阿拉伯文……)是在Windows中提供的,但不是在命令框中。当我这样做时,我会再写一次,也许明天。我有两种字体“Lucida Console”和“ConsoleAs”-我做了一个e