M-x shell 无法显示中文字

emacs 中使用 M-x shell, 启动shell后, 中文字显示为问号。比如文件名为"中文.txt"的文件显示为“??????.txt”

请教各位大大这是什么原因, 有什么办法正常显示中文吗?

1 个赞

我也是有同样问题,不知道问题出在哪里。

估计是编码不对,可以搜索一下论坛。

还有一个可能是 Windows 系统的区域设置不对。

bash 可以看看locale 然后设置export LC_ALL=en_US.UTF-8 试试能否输出英文呢?

1 个赞

我在macOS 10上使用emacs。 shell显示乱码,应该还是编码问题。 还在论坛里翻找答案。。。 我的init.el中有如下代码:

(set-language-environment "UTF-8")
(set-default-coding-systems 'utf-8)

不知道有没有关系。

我的编码设置是这样的,macOS 和 Windows 的 M-x shell 都没乱码。不过平时基本不用 M-x shell,直接用的 iterm2 或者 Windows Terminal (Powershell)

复制了你的设置,还是一串问号。会不会是我emacs的版本问题, 因为我有些unicode显示也是怪怪的。我是从https://emacsformacos.com/ 直接下载安装的。 版本:GNU Emacs 27.2

我在 ~/.zshenv 中还设置了这个:

export LC_CTYPE="en_US.UTF-8"
export LANG="en_US.UTF-8"
1 个赞

我电脑上没有找到~/.zshenv这个地址。

另外,我又尝试了一下eshell是可以正常显示中文的,dired也可以正常显示。就只有shell不行。

估计跟bash有点关系[挠头], 这我真的陌生。。。

你用 bash 啊?放到 ~/.bashrc 也是可以的。

我还是没有这个文件。只有~/.bash_[history/profile/sessions]。

是不是需要创建新文件?

可以创建的。这个文件是 shell 的配置。你用的是 bash 就在创建一个 .bash.rc ,如果是 zsh,就创建 .zshenv

新建~/.bashrc, 并添加上述文字即可。

问题解决,万分感谢!!!:+1:

2 个赞

你说的是对的。可惜我一开始看不懂,绕了一圈才明白。

1 个赞

我的问题也解决了,太感谢了!

我是Windows系统。一开始的时候吧,我也是各种设置编码。怎么设置都不对——不是这里有问题,就是那里不完美。

一个偶然的机会,我用emacs.exe -Q打开了文件,然后发现竟然在我常见的情况下都不乱码,包括shell中。所以我现在已经把Windows相关的编码设置全部删除掉了。