Mac 通过 ssh 远程连接 linux 终端,文件或文件夹中文名显示为乱码,而 Mac 本地中文显示正常,Linux 本地显示中文也正常。本篇解决该问题。

方法

首先查看 Linux 终端配置

1
locale

显示为如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=

然后再查看 Mac 终端配置

1
locale

显示结果如下:

1
2
3
4
5
6
7
8
LANG=""
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETRAY="C"
LC_NUMBERIC="C"
LC_TIME="C"
LC_ALL=

发现两者不匹配,因此需要,在 Mac 本地更改下编码,方法如下:

1
2
# for zsh
vim ~/.zshrc

增加如下内容

1
2
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

最后,使其生效

1
source ~/.zshrc

如果是 bash,那么请换成 ~/.bashrc.

参考文献

  1. 解决macOS iTerm2 ssh连接Ubuntu中文显示乱码的问题