windows - 如何让 Emacs dired 模式在 Windows 中显示 unicode 字符?

标签 windows emacs unicode multibyte dired

我在 Windows XP 上运行 emacs 23.3,我处理一些文件名包含英语和梵文或泰米尔语字符组合的文件(例如,que.प्रश्न.txtans. பதில்.txt)。

当我在 Dired 中访问包含此文件的目录时,这些文件名显示不正确,即使我可以在 Windows 资源管理器中看到这些名称。对于以英文字符开头的文件名,Dired 显示类似“deva~1.txt”的名称,但如果名称完全由非英文字符组成,它会显示类似“47d1~1.txt”的名称。

我想这与 Windows 内部返回给 emacs 的内容有关,但我注意到在同一目录的命令提示符下运行 dir 会显示全名(即使 cmd 只是将所有非英文字符呈现为 ? 符号)。

无论如何我可以启用 dired 以正确呈现包含非英文字符的文件名吗?

最佳答案

这实际上是 Emacs 实现的一个限制。 Emacs 使用可追溯到 Unicode 之前的 Windows 原语,因此任何带有无法在“代码页”中编码的字符的文件名都将替换为损坏的 foo~1 名称(如果您的文件系统是 VFAT)或其他情况下的其他名称。希望我们很快就会切换到使用 UTF-16 (IIRC) 的"new"Windows 原语,并且不再遭受此类问题的困扰。但是您可能需要等待 Emacs-25.1。如果您帮助我们,它可能会更快发生;-)

关于windows - 如何让 Emacs dired 模式在 Windows 中显示 unicode 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9738348/

相关文章:

php - 如何将 Windows 批处理脚本变量传递给管道命令

vim - 按列遍历搜索结果

eclipse - 如何使用 Etags 在 Emacs 中找到类、方法、变量的引用?

python - 在python中,提取非英语单词

Python - 我可以在不打开文件的情况下将 UTF8 BOM 添加到文件吗?

c# - 如何使用 C# 在系统范围内禁用鼠标单击事件?

windows - 在Win7中,某些字体不能像在Win2K/XP中那样工作

regex - 带文本转换的Emacs查询替换

java - 在Java中使用Unicode正则表达式来匹配任何Unicode字符

linux - 从 Windows 到 Linux 的 Rsync,使用 putty pageant 身份验证