SSH 连接 macOS 中文乱码


原因

macOS 默认字符编码设置,用 locale 命令查看:

1
2
3
4
5
6
7
8
LANG=""
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

解决方法

根据系统默认 Shell 设置,编辑下列文件之一:

1
2
3
vi ~/.zshrc			# zsh
vi ~/.bashrc # bash
vi ~/.bash_profile

添加如下配置:

1
2
3
# Chinese norm
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

使用 source 重载编辑好的文件,或重连 SSH 即可解决。

验证

同样使用 locale 命令查看:

1
2
3
4
5
6
7
8
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

参考资料