2013-04-16 21 views
2

我需要不时作出的文件列表从CD我获取文件的列表。这些文件的名称在其他书写系统中经常包含字符,如西里尔文俄文(Добродошли.doc)或简体/繁体中文(孟子译注.pdf)。我的电脑(在Windows 7下运行,波兰语)显示文件名正确,打开文件,将文件保存在其他位置,允许通过各种软件编辑文件等。但是当我制作目录列表时(使用dir命令)我总是得到问号和其他奇怪的字符,而不是其他(中文,俄文)字符 - 默认情况下dir命令的输出似乎是用ANSI编写的 - 而不是Unicode/UTF8。如何保存目录中包含俄罗斯或中国的字符(Windows7的)

例子:

 
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 

我试图寻找各种建议WWW这个问题,并没有解决方案(与Windows右键上下文菜单“打印目录列表”获得)提供已经解决了我的问题 - 或者我发现(似乎过时)的答案,暂时的问题不能在各种环境下解决。也许有什么改变 - 也许有一个解决方案,直接离开或改变了Windows注册表内的东西后?否则,如果没有简单的批处理编程解决方案 - 也许有一些现成的软件可以下载(免费或购买)来解决我的问题?

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

感谢您的任何建议 - 我会尝试所有(如果有的话)。

+0

命令提示符不能正确显示Unicode字符。请放心,您的应用程序工作正常。 –

+0

请参阅:[什么编码/代码页是cmd.exe使用](http://stackoverflow.com/questions/1259084/what-encoding-code-page-is-cmd-exe-using) – Endoro

+0

@Endoro - 我'我已经看到了它,检查了所有可能的代码页(原来我有852,但即使将其更改为西里尔语特定的cp(855,860,1251)或Unicode(65001)也没有改变俄罗斯的情况,并不是说汉族。 UTF16小或大端cp(1201或1200 - 取自http://en.wikipedia.org/wiki/Code_page的数字) - 导致错误消息“不正确的代码页”。我应该使用哪种cp?也许我需要永远改变它来启动它,因为“程序(除了Cmd.exe),你分配新的代码页之前开始使用原代码页”?但目录是cmd.exe –

回答

0

首先,您需要与外国字符支持True Type字体(TTF)。安装字体:标题栏

  • 单击鼠标右键
  • 选择属性/字体
  • 如果您的字体是不是在列表中,你必须之前在注册表中与关键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont\
  • 添加它

安装字体的控制台显示后用该字体支持的所有外国字符。诸如dir或重定向到文件dir > dir.txt的命令也可以工作。并且不需要使用chcp更改代码页。

+0

谢谢你的建议。因为你在那里指导我,所以我是因为我的DOS经验而看起来合乎逻辑的。我已经检查过,我已将Lucida Console和Lucidas作为安装在cmd控制台中的两个ttf字体。两者都有西里尔文字母,但显示效果不好,也没有导出dir> dir.txt(都有问号而不是bukvy)。不知道为什么。我已经添加了第三个字体DejaVue Sans Mono,详细描述参见http://cristianadam.blogspot.tw/2009/11/windows-console-and-true-type-fonts.html,它也有西里尔文,但它没有帮助 –

+0

我不知道使用哪个ttf字体,我的电脑上有数百个字体。您使用了哪种字体?我已阅读“在命令窗口中可用字体的必要条件”(http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q247815),并停止之前addung一个亚洲字体(太多细节之前检查),但我的经验与西里尔使我怀疑它是否会工作。 Windows中提供了Cyryllic,中文和其他字符的显示(与带有垃圾邮件的文件 - 日语,阿拉伯语...一样),但不在命令框中。当我这样做,也许明天,我会再次写信。 –

+0

我有两个字体“Lucida控制台”和“Consolas” - 我犯了一个错误。现在我已经从注册表中删除了它们,并将DejaVu Sans Mono设置为默认设置,西里尔字母出现在命令框中,但文件dir.txt包含了???而不是俄文字母(使用记事本,写字板和MS Word进行检查;字体更改不会产生任何影响)。无助! –

0

设置chcp 65001解决了我的问题。 问题出在错误的代码页上,至少在我的情况下。

-1

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

+0

您提到的所有操作系统都已过时并且不受支持。问题是关于Windows 7。 –