如何让Emacs dired模式在Windows中显示Unicode字符?

4
我有一个运行在Windows XP上的Emacs 23.3版本,我处理的一些文件名包含英文、天城文或泰米尔文字符的组合(例如:que.प्रश्न.txt或ans.பதில்.txt)。
当我在Dired中访问包含这些文件的目录时,尽管我可以在Windows资源管理器中看到文件名,但这些文件名不会正确显示。对于以英文字符开头的文件名,Dired显示类似于“deva~1.txt”的名称,但对于完全由非英文字符组成的名称,则显示类似于“47d1~1.txt”的名称。
我猜想这与Windows内部返回给Emacs的内容有关,但我注意到在相同目录下运行命令提示符中的dir命令可以显示完整的名称(即使cmd只将所有非英文字符呈现为“?”符号)。
是否有任何方法可以使Dired正确地呈现具有非英文字符的文件名?

我发现dired在NTEmacs和Linux上都用空格代替Unicode字符显示为空白。 - phils
1个回答

4

实际上这是Emacs实现的一个限制。Emacs使用的Windows原语可以追溯到Unicode之前,因此任何文件名中包含无法在您的"代码页"中编码的字符都将被替换为破损的foo~1名称(如果您的文件系统是VFAT),或者在其他情况下会出现其他问题。希望我们很快能切换到使用UTF-16(如果我没记错的话)的“新”Windows原语,不再遇到这样的问题。但是您可能需要等待Emacs-25.1才能实现。如果您能给我们帮助,这可能会更快实现;-)


Stefan,感谢您清晰的回答。我真的很想看到这个和其他与Unicode相关的Emacs改进。我愿意尽我所能提供帮助。 - koushik
@koushik:如果你在Windows上有编写C代码的经验,欢迎加入我们的emacs-devel邮件列表。 - Stefan
在 https://www.gnu.org/software/emacs/manual/html_node/emacs/File-Name-Coding.html 内,Stefan 提到 Emacs 使用 Unicode 基元,但在 24.3 版本中并未完全实现,至少我无法打开因命名问题而出现的文件。现在的情况是什么?是否仍计划在 v25 中修复? - Victoria
2
实际上,我们的英雄Eli已经实现了它,版本号为24.4。 - Stefan
@Stefan:似乎无法工作:http://emacs.stackexchange.com/questions/15303/open-russian-file-names-on-windows - Adobe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接