请教Emacs for Windows 下的 shell 编码设置问题

M-x shell 可以在Emacs中打开cmd 控制台。 显示没有问题,即使显示的目录路径包含中文也能正常显示。 输入也没有问题,可以输入中文。 但是执行命令时,哪怕是最简单的 cd 命令,只要参数包含中文,执行就会显示乱码。

图片

看起来是你敲的“录音”两个字是utf-8编码,但是执行时按照 gbk 去处理了。

1 个赞

是的,但是怎么解决呢? 与这个问题相关,我在org-mode的时候,用 ox-pandoc 包选择pandoc方式导出文件,只要路径中包含中文,调用pandoc命令就会出错,也是路径名编码有问题。

windows系统本身的路径名应该是gbk编码, 似乎emacs在把所有的路径名按utf-8处理了, 是不是因为我配置文件里加了

(prefer-coding-system 'utf-8)

Windows 下Emacs编码需要怎么设置才能完全正常呢?

水平太低,无能为力,当初逃离 windows ,乱码问题也是一大原因。

对了,如果你不手工敲入,而是自动补全的话,会出现什么情况?

进程的编码不匹配导致的(Shell 的输出是 UTF-8 格式,但 Emacs 以 GBK 方式读取),论坛应该有很多同类问题,搜索 Windows 看看。