环境windows 11+doom emacs
之前为了避免乱码问题,我在config.el中设置了utf-8之类的参数
设置了 magit-git-output-coding-system
(when (fboundp 'set-charset-priority) (set-charset-priority 'unicode))
(setq magit-git-output-coding-system 'utf-8-unix)
(if (eq system-type 'windows-nt)
(progn
(set-clipboard-coding-system 'utf-16-le)
(set-selection-coding-system 'utf-16-le))
(set-selection-coding-system 'utf-8))
(prefer-coding-system 'utf-8-unix)
(set-language-environment "UTF-8")
(set-default-coding-systems 'utf-8-unix)
(set-terminal-coding-system 'utf-8-unix)
(set-keyboard-coding-system 'utf-8-unix)
但是打开magit之后还是这个样子
此时使用revert-buffer-with-coding-system设置 选择utf-8-unix之后,内容就正常了.
请问大家有遇到吗?这个是什么原因?应当如何解决?
目前没搜到什么有用的信息. 非常感谢
这个刚才尝试了一下,把上边的都注释掉,重启emacs
乱码效果一致,没有变化
用 chcp 65001
把 cmd 的编码改成 utf8
看一下 git log 的输出还正不正确
正常来讲 magit 不做任何配置也不会出现编码错误的
问题依旧,我也很奇怪,到底什么原因导致的这个问题
我的EMACS是通过chocolatey安装的. git是手动安装的
用emacs -Q 只装magit排查一下是不是doom的问题吧
谢谢,我研究一下. 最近忙着改论文. 可能没时间折腾它了
没研究明白怎么在emacs -Q的情况下加载magit。
但是最近我在wsl1里边安装了debian,然后重新安装了doom emacs,现在magit就正常了。也不知道是不是windows的坑。放弃了。暂时用wsl1,而且响应速度也快点儿了。
wsug
12
wsug
13
emacs -q启动后在默认buffer中输入类似这样(load-file "~/.emacs.d/elpa/magit-20210916.1754/magit-autoloads.el")
c-x c-e执行加载magit
遇到了同样的问题,发现是下面这行设置导致的:
(add-to-list 'process-coding-system-alist '("es" gbk . gbk))
这个设置的本意是想将 es.exe
进程改成 gbk 编码,但是 magit 在执行 git 时使用的全路径,即 magit-git-executable
我的 git 安装在 C:\Program Files\path\to\git.exe
, 这里面有个 es
匹配上了,就导致将 git 的输入输出当成 gbk 处理,去掉上面的配置就正常了
2 个赞
最近也是用这个process-coding-system-alist来配置es,fd等等的配置,
后来加上了git,单独配置了编码,好像就可以了。
但是真没注意到您说的这个核心原因。
感谢