各位好,
你们遇到过Windows下eshell乱码的问题么? 当我按下C-c 想终止程序的时候,提示是乱码。
Emacs 版本:GNU Emacs 27.0.60 (build 1, x86_64-w64-mingw32)
谢谢!
各位好,
你们遇到过Windows下eshell乱码的问题么? 当我按下C-c 想终止程序的时候,提示是乱码。
Emacs 版本:GNU Emacs 27.0.60 (build 1, x86_64-w64-mingw32)
谢谢!
编码不匹配,你所用的程序输出 GBK:
(decode-coding-string
"\326\325 \305\372\264\246\300\355\262\331\327\367\302\360(Y/N)?"
'gbk)
;; => #("终 批处理操作吗(Y/N)?" 0 14 (charset chinese-gbk))
不清楚第二个字是什么,反正应该不是「止」
(encode-coding-string "终止" 'gbk)
;; => "\326\325\326\271"
谢谢!请问你知道怎么给eshell设置编码么?比较奇怪的是,中文目录显示都是正常的,就是终止程序的时候发现不正常,应该还是哪里设置的不对。
把程序输入输出和 Emacs buffer 这三个地方的编码搭配上。先试着把问题的根源找出来,然后再解决。
假设你的 Buffer 编码是 UTF-8,执行 cat file.gbk
,当然就会出现「乱码」。或者假设你告诉 Emacs subprocess 输出编码是 GBK,此时 cat file.utf-8
,当然也会「乱码」。
这跟你的问题没关系,Eshell 的 ls 不用外部程序,不会出现编码不匹配问题。
谢谢! 有时间再试试看吧,最近比较忙。
在配置中加入: (with-eval-after-load 'eshell (set-language-environment “chinese-GB”) )
你还解决了吗,就是npm输出乱码的呢